2016-11-09 95 views
0

我正在開發一個Web應用程序,允許用戶將大文件上傳到服務器,並使用S3存儲這些文件。爲了能夠上傳任意大小的文件,我使用s3manager.Uploader來簡化分段上傳。將大文件上傳到S3而不通過服務器

因爲有些文件會很大(〜15GB),我想知道是否有可能做類似於預先登記的網址,但對於分段上傳?我想避免必須將數據上傳到我的服務器,然後將其上傳到S3。理想情況下,我想要一個URL,我可以直接在HTML表單中指定POST,並避免將我的Web服務器用作文件的代理。

+0

[如何在Go中將預先簽名的POST上傳到AWS S3?](http://stackoverflow.com/questions/32377782/how-to-do-a-pre-signed-post-上傳到aws-s3-in-go) – fl0cke

+0

我懷疑預先登記的表單「POST」上傳被限制在5GB @ fl0cke。 –

+0

我不認爲有一個簡單的答案,因爲亞馬遜傾向於設計事物,這樣協調像這樣的事情的負擔放在用戶身上,這是他們如何擴大規模。你可能會發現[這個hashicorp博客文章,討論同樣的問題](https://www.hashicorp.com/blog/consul-s3-multipart.html),這也解釋了他們如何解決它(擾流板:有很多代碼) – nothingmuch

回答

1

@ michael-sqlbot是對的。只是做文章,每個文件的限制爲5GB。如果您在上傳前預先登記每個請求,則可以執行分段上傳,這意味着您需要管理文件拆分並要求服務器在上傳前簽署每個請求。

我結束了@ fl0cke建議,並使用https://github.com/TTLabs/EvaporateJS來管理上傳。它執行所有的文件管理,你只需要實現服務器端功能來簽署每個文件的請求。

相關問題