12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace Aws\Polly;
- use Aws\Api\Serializer\JsonBody;
- use Aws\AwsClient;
- use Aws\Signature\SignatureV4;
- use GuzzleHttp\Psr7\Request;
- use GuzzleHttp\Psr7\Uri;
- use GuzzleHttp\Psr7;
- class PollyClient extends AwsClient
- {
-
- private $formatter;
-
- public function createSynthesizeSpeechPreSignedUrl(array $args)
- {
- $uri = new Uri($this->getEndpoint());
- $uri = $uri->withPath('/v1/speech');
-
- $this->formatter = $this->formatter ?: new JsonBody($this->getApi());
- $queryArray = json_decode(
- $this->formatter->build(
- $this->getApi()->getOperation('SynthesizeSpeech')->getInput(),
- $args
- ),
- true
- );
-
- $query = Psr7\Query::build($queryArray);
- $uri = $uri->withQuery($query);
- $request = new Request('GET', $uri);
- $request = $request->withBody(Psr7\Utils::streamFor(''));
- $signer = new SignatureV4('polly', $this->getRegion());
- return (string) $signer->presign(
- $request,
- $this->getCredentials()->wait(),
- '+15 minutes'
- )->getUri();
- }
- }
|