簡體   English   中英

如何配置aws s3存儲桶接受Heroku上的簽名網址?

[英]How to configure aws s3 bucket to accept signed urls on Heroku?

我使用Node.js從aws s3使用來自(aws-sdk)模塊的putObject獲取簽名的url。 當我在本地運行我的服務器時,上傳到S3沒有問題。 當我將代碼部署到heroku並選擇要上傳的文件時,我在chrome控制台中收到以下錯誤:

https://torhuw-hrns.s3.amazonaws.com/5f522890-0283-11e6-a696-b1fc6f56c785-T ... 4&Signature = P7ybw4%2B2qqNRNKTZbc%2FMWLhPn1o%3D&x-amz-acl = public-read-write無法加載資源:服務器響應狀態為403(禁止)

我正在使用Node.js(aws-sdk)s3getSignedUrl方法來獲取簽名並將其發送到前端以將我的文件上傳到我的s3存儲桶。

我遵循的教程是Node.js中的Direct to S3 File Uploads

仔細檢查S3存儲桶的權限和CORS配置。 您需要確保策略允許“s3:PutObject”在您的存儲桶上,並且您需要確保CORSRule允許PUT / POST並允許您的應用程序域。

要調試這些內容,您可以考慮暫時放寬所有權限以“全開”並在完全不受限制時檢查它是否有效。

好吧,我通過創建一個更新CORS配置的新存儲桶,創建新的access_key_ID和access_secret_access_key以及更新heroku環境變量來解決這個問題(我還選擇了存儲桶與我的heroku應用程序位於同一區域,但不確定是否這是解)。 使用的CORS配置是:

 <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration> 

暫無
暫無

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

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