Class: Aws::Polly::Presigner

Inherits:
Object
  • Object
show all
Defined in:
lib/aws-sdk-polly/presigner.rb

Overview

Allows you to create presigned URLs for ‘synthesize_speech`

Example Use:

signer = Aws::Polly::Presigner.new
url = signer.synthesize_speech_presigned_url(
  output_format: 'mp3',
  text: 'Hello World',
  voice_id: 'Ewa'
)

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Presigner

Returns a new instance of Presigner.

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :client (Client)

    Optionally provide an existing Polly client.

  • :credentials (Credentials)

    This option is deprecated, please use :client instead. Provide an object that responds to ‘#credentials` that returns another object that responds to `#access_key_id`, `#secret_access_key`, and `#session_token`.

    For example, you could provide an instance of following classes:

    * `Aws::Credentials`
    * `Aws::SharedCredentials`
    * `Aws::InstanceProfileCredentials`
    * `Aws::AssumeRoleCredentials`
    * `Aws::ECSCredentials`
    
  • :region (String)

    This option is deprecated, please use :client instead. The region name, e.g. ‘us-west-2’.



39
40
41
42
43
44
45
46
# File 'lib/aws-sdk-polly/presigner.rb', line 39

def initialize(options = {})
  if !(options.keys - [:credentials, :region, :client]).empty?
    raise ArgumentError,
          ':options may only contain :client, :region, :credentials '\
          'keys. Please use the :client option instead.'
  end
  @client = options[:client] || Aws::Polly::Client.new(options)
end

Instance Method Details

#synthesize_speech_presigned_url(params = {}) ⇒ Object

Parameters:



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/aws-sdk-polly/presigner.rb', line 50

def synthesize_speech_presigned_url(params = {})
  req = @client.build_request(:synthesize_speech, params)
  context = req.context

  parts = []
  req.context.operation.input.shape.members.each do |name, ref|
    parts << [ ref, params[name] ] unless params[name].nil?
  end
  query = Aws::Rest::Request::QuerystringBuilder.new.build(parts)

  endpoint_params = Aws::Polly::EndpointParameters.new(
    region: context.config.region,
    use_dual_stack: context.config.use_dualstack_endpoint,
    use_fips: context.config.use_fips_endpoint
  )
  endpoint = context.config.endpoint_provider
                    .resolve_endpoint(endpoint_params)
  auth_scheme = Aws::Endpoints.resolve_auth_scheme(context, endpoint)

  signer = Aws::Plugins::Sign.signer_for(
    auth_scheme, context.config
  )

  pre_signed_url = signer.presign_url(
    http_method: 'GET',
    url: "#{endpoint.url}/v1/speech?#{query}",
    body: '',
    expires_in: 900
  ).to_s
end