ホームページ >バックエンド開発 >PHPチュートリアル >PHP Amazon S3 のアップロードが「リクエストの署名が一致しません」エラーで失敗するのはなぜですか?

PHP Amazon S3 のアップロードが「リクエストの署名が一致しません」エラーで失敗するのはなぜですか?

DDD
DDDオリジナル
2024-12-05 09:31:13766ブラウズ

Why Does My PHP Amazon S3 Upload Fail with a

PHP SDK を使用した Amazon S3 の「リクエストの署名が一致しません」エラーを解決する

Amazon への接続を確立しようとしたときAWS SDK for PHP を使用している 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。