私のwebappがaws s3バケットと話すためにノードにaws-sdk
を使用しています。しばらくしてs3にファイルをアップロードしようとすると失敗します。すぐに再度アップロードしようとするとうまくいきます。ノード:S3へのアップロードが最初のトレイルでのみ失敗する
は、いくつかのデバッグした後、それはrequestUrl
との問題だと思われる:
最初の試験では、
requestUrl: https://s3-ap-southeast-2.amazonaws.com/
に直接リクエストを送信しようと、もちろん403禁断のエラーにつながる
正しいURLである
requestUrl: https://my-bucket.s3-ap-southeast-2.amazonaws.com/querystrings....
で他の成功した要求のターゲット。
私の質問は、なぜ最初の裁判が間違ってrequestUrl
になるのですか?ところでS3バケットへの資格情報が自動的にec2
サーバーのIAM role
からロードされ、バケットがからGET
とPUT
を許可するように設定されている
const s3 = new AWS.S3({ params: { Bucket: "my-bucket", }, });
s3.getSignedUrl('putObject', { Key: s3Key, ContentType: newFile.type, ACL: 'private', })
:サーバーで署名したURLは次のように生成されますその役割。
あなたは本当にありがとうございます! –