簡體   English   中英

AWS S3 getSignedUrl構造錯誤的URL

[英]AWS S3 getSignedUrl constructs wrong URL

我想為我的S3存儲桶獲取一個預先簽名的URL,用於這樣的PUT請求(在node.js中)

   AWS.config.update({
      accessKeyId: s3Config.accessKeyId,
      secretAccessKey: s3Config.secretAccessKey,
      region: s3Config.region,
      signatureVersion: 'v4'
   });
   var s3bucket = new AWS.S3({params: {Bucket: s3Config.bucket,Key:'/content'}});
   s3Config.preSignedURL = s3bucket.getSignedUrl('putObject',{ACL:s3Config.acl})

結果我得到了

HTTPS:// [BUCKET] .S3 [REGION] .amazonaws.com / [KEY] [presignedURLStuff]

這個URL是根據亞馬遜的錯誤。 URL必須采用http://*.s3.amazonaws.com/*格式。 我也從飛行前得到了誤差網:: ERR_INSECURE_RESPONSE。 該函數構造正確的URL我該怎么辦? 從URL中刪除區域會導致400 Bad Request。 然后,飛行前OPTIONS工作。

我相信PUT請求需要轉到特定的桶區域。

如果由於某種原因,您獲取的URL具有錯誤的存儲區域(例如,您的EC2實例位於不同的區域),則可以在S3 init中設置存儲區域。

return new aws.S3({region:"s3-eu-west-1"})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM