amazon s3 — вызов неопределенного метода createPresignedUrl () с использованием AWS SDK для переполнения стека

Я не мог создать Предписанный URL, используя AWS SDK для PHP. Мой код —

function connect()
{
// Instantiate the S3 class and point it at the desired host
date_default_timezone_set('GMT');
return S3Client::factory(array(
'region'  => 'us-west-2',
'version' => 'latest',
'credentials' => [
'key'    => $key,
'secret' => $secret
]

));

function getSignedS3URLForObject($fileName)
{
// GET CURRENT DATE
$milliseconds = round(microtime(true) * 1000);
$expiration = $milliseconds + (1000 * 60 * 60 * 24 * 30 * 2);
$s3 = self::connect();
$command = $s3->getCommand('GetObject', array(
'Bucket'      => self::$customerBucket,
'Key'         => $fileName,
'ContentType' => 'image/jpeg',
'Body'        => '',
'ContentMD5'  => false
));
$signedUrl = $command->createPresignedUrl($expiration);
echo urldecode($signedUrl);
return $signedUrl;
}

Это дает мне следующую ошибку

Неустранимая ошибка: вызов неопределенного метода
Aws \ Command :: createPresignedUrl () в
/Users/waverley_lv/WaverleySoftware/workspace/fox.php.auto/sites/default/behat-tests/util/S3Utility.php
на линии 103

0

Решение

Используя s3.0.0 v3 — я сделал следующее, чтобы заставить это работать.

$command = $s3->getCommand('GetObject', array(
'Bucket'      => $this->customerBucket,
'Key'         => $fileName,
'ContentType' => 'image/png',
'ResponseContentDisposition' => 'attachment; filename="'.$fileName.'"'
));
$signedUrl = $s3->createPresignedRequest($command, "+1 week");
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]