У меня есть ведро, созданное в регионе с юго-востоком-1, с ACL, установленным в личное чтение. Я могу успешно загружать файлы в папки внутри ведра, используя класс AWS PHP SDK 2 S3Client. Однако мне также нужно отобразить ссылку на эти файлы в моем приложении. Следовательно, когда пользователь нажимает кнопку, я отправляю запрос AJAX к моему файлу сервера, и я получаю подписанныйURL, который возвращается пользователю через строку json. Тем не менее, URL всегда возвращается с XML с ошибкой SignatureDoesNotMatch.aws s3 php sdk 2 SignatureDoesNotMatch Ошибка
Код для получения signedURL ниже:
//create the AWS reference string
$client = S3Client::factory(
array(
'key' => T_AWS_KEY,
'secret' => T_AWS_SECRET,
'region' => T_BASE_REGION
)
);
//method 1 - using Command Object
$command = $client->getCommand('GetObject', array(
'Bucket' => T_BASE_BUCKET . "/" . $firmId . "/invoices" ,
'Key' => $arr['file_reference_url'] ,
'ResponseContentDisposition' => 'attachment;filename=' . arr['file_reference_url']
));
$signedUrl = $command->createPresignedUrl('+10 minutes');
echo $signedUrl . "\n\n";
//method 2 - using getObjectUrl
echo $client->getObjectUrl(T_BASE_BUCKET . "/" . $firmId . "/invoices", $arr['file_reference_url'], "+10 minutes");
Любая помощь приветствуется.
спасибо большое! это сработало! :) – Mathai