首頁 >後端開發 >php教程 >為什麼我的 PHP Amazon S3 上傳失敗並出現「請求簽章不符」錯誤?

為什麼我的 PHP Amazon S3 上傳失敗並出現「請求簽章不符」錯誤?

DDD
DDD原創
2024-12-05 09:31:13753瀏覽

Why Does My PHP Amazon S3 Upload Fail with a

使用PHP SDK 解決Amazon S3 中的「請求簽章不符」錯誤

嘗試建立與Amazon 的連線時使用適用於PHP的AWS 開發工具包的S3 儲存桶時,您可能會遇到錯誤「我們計算的請求簽章與您提供的簽章不符」。這可能是一個令人沮喪的問題,尤其是在花了無數個小時尋找解決方案之後。

故障排除步驟

在這種特定情況下,由於意外來源而發生錯誤 -物件鍵。經過仔細檢查,發現分配給該物件的鍵以句點(.)開頭,表示相對路徑。這個看似無害的字元導致簽章計算失敗。

解決方案

要解決此問題,只需確保物件金鑰不以句點開頭即可。以下程式碼將成功將物件上傳到S3 儲存桶:

$result = $s3Client->putObject(array(
    'Bucket' => $bucket,
    'Key' => 'images/ABC.jpg', // Key does not start with a period
    'Body' => 'Hello World!'
));

透過刪除物件金鑰中的前導句點,簽章計算成功,並且物件已上傳到S3 儲存桶,沒有任何錯誤.

以上是為什麼我的 PHP Amazon S3 上傳失敗並出現「請求簽章不符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn