Java - 充当文件上传到S3的中间人

时间:2014-12-07 21:00:24

标签: java file-upload amazon-web-services amazon-s3

我正在试图找出允许客户将媒体(照片和视频)上传到我的S3存储桶的最简单方法,而不是直接访问它们,也不使用预先签名的网址。

我的想法是,我不希望发生任何类型的媒体处理,我唯一感兴趣的是保护S3存储桶不与客户端直接联系,并记录有关正在上传的文件的信息(如尺寸,类型等。)。

您对如何以简单的方式实现此架构有任何想法吗?

1 个答案:

答案 0 :(得分:1)

从移动应用上传

将文件从移动应用程序上传到Amazon S3:

  • 在您的后端,使用AWS Security Token Service生成临时凭证
  • 将凭据传递到您的移动应用
  • 移动应用随后可以调用AWS API

临时凭证可以被授予一组有限的权限(例如,上传到特定的存储桶和路径),并且仅在有限的持续时间内有效,最长可达一小时。这是一种很好的安全措施,因为移动设备上没有永久凭据。

从网页上传

通过HTML表单使用基于浏览器的上传。这允许HTML页面中的表单直接安全地上传Amazon S3 - 甚至是私人文件夹。它使用签名策略来定义允许的操作(例如,使用特定权限集上载到特定位置,最多为特定文件大小)。

表单可以是静态的 - 无需重新计算要上载的每个文件的签名。

请参阅:Authenticating Requests in Browser-Based Uploads Using POST