2
我在ap-southeast-1區域創建了一個存儲區,並將ACL設置爲專用讀取。我可以使用AWS PHP SDK 2 S3Client類將文件成功上傳到存儲桶中的文件夾。不過,我還需要在我的應用程序中顯示這些文件的鏈接。因此,當用戶點擊一個按鈕時,我發送一個AJAX請求到我的服務器文件,並且我得到了通過json字符串返回給用戶的signedURL。但是,url總是返回帶有錯誤SignatureDoesNotMatch的XML。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