簡體   English   中英

將文件從瀏覽器上傳到S3

[英]Upload files from browser to S3

我有一個預簽名的url,它允許您將對象文檔放入S3。 http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjectPreSignedURLDotNetSDK.html

如何使用javascript將文件從瀏覽器放置到S3? 我正在使用angular,但可以使用任何JavaScript庫。

我相信我可以發布到我的服務器上,然后將對象放在亞馬遜服務器上,但是我更喜歡從瀏覽器中進行操作。

我已經更改了S3的CORS設置以允許PUT。

我打算使用角度文件上傳,但是很難將其編碼為POST而不是PUT。 https://github.com/danialfarid/angular-file-upload

亞馬遜提供了一個指南( here ),該指南描述了如何將文件POST上傳到您的S3存儲桶中。 它依賴於使用您的AWS私鑰簽名的輸入<form>。 您可以在目標目錄上指定限制,以及文件大小限制。

使用起來有點煩人,因為您必須復制<form>和已簽名策略中的大多數字段,但這似乎可行。

POST之后,S3會將瀏覽器重定向到您在表格中指定的URL(參數指定上傳文件的名稱,等等)。 對於Angular網站(這往往是“應用程序”而不是一組離散頁面)而言,這不是理想的選擇,但是您可以使用它。

在我的Angular網站上,我使用$ http.post()在Javascript中進行了POST,並傳遞了所有適當的表單數據。 不幸的是,即使上傳實際上是成功的,我也總是遇到“已取消”的錯誤。 就我而言,我只是通過使用$ http.get()下載文件並將其與原始數據進行比較進行了雙重檢查……但這只是一個可行的解決方案,因為我的文件只有幾個KB。

暫無
暫無

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

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