2016-11-09 203 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来管理上传。它执行所有的文件管理,你只需要实现服务器端功能来签署每个文件的请求。

相关问题