ホームページ >バックエンド開発 >PHPチュートリアル >PHP Amazon S3 のアップロードが「リクエストの署名が一致しません」エラーで失敗するのはなぜですか?
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 サイトの他の関連記事を参照してください。