首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将图片从webapp上传到S3,而无需将其存储在服务器中

将图片从webapp上传到S3,而无需将其存储在服务器中
EN

Stack Overflow用户
提问于 2016-03-19 05:02:17
回答 2查看 187关注 0票数 0

我有一个带有Javascript前端和Java后端的web应用程序。我有一个用例,用户可以上传他们的个人资料图片。用例很简单:从用户浏览器发送图像并将其存储在具有最大文件大小的S3中。目前,前端将图像数据流发送到后端,后端使用AWS Java SDK将图像存储在S3中。

后端必须预先将此图像存储在文件系统中,以便知道图像文件的大小(并避免读取超过某个最大值的字节),因为S3需要将PUT对象请求与文件内容长度一起发送。

有没有其他方法可以通过AWS来实现这一点?使用其他服务?也许是Lambda?我不喜欢这种必须先将文件存储在文件系统中,然后再次打开流才能将其发送到S3的方法。

非常提前感谢您。

EN

回答 2

Stack Overflow用户

发布于 2016-03-19 08:16:08

您可能会像前面提到的here那样在客户端获得文件大小,但请考虑浏览器支持。您不应该与客户端代码共享您的密钥。我认为在这个场景中应该使用查询字符串身份验证。

票数 0
EN

Stack Overflow用户

发布于 2016-03-19 08:21:18

假设您的最大文件大小小于您的可用内存,为什么您不能直接在byte[]或类似的文件中读取它,您可以将它发送到S3,而不将其写入磁盘。您还应该能够以这种方式获得大小。

取决于您正在使用的S3 java客户端。如果它允许你从ByteArrayInputStream中读取数据,那么你应该可以做任何事情。

看起来你可以使用InputStream了。参见javadoc

代码语言:javascript
复制
new PutObjectRequest(String bucketName,
                String key,
                InputStream input,
                ObjectMetadata metadata)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36094157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档