【发布时间】:2020-12-07 00:29:06
【问题描述】:
我正在构建一个平台,用户可以借此向我们上传数据。用户将数据上传给我们,交易的数据量为 750 MB。
跟踪用户上传的数据的标准方法是什么?您如何按用户在 S3 存储桶上组织数据?
一个简单的方案可以是通过用户名标记/前缀上传到 S3 存储桶的每个项目,并在我们的应用程序中使用此逻辑来允许用户使用这些文件。然后,我们可以跟踪在数据库(如 AWS Dynamo)中上传的用户名 + 数据。
当我开始考虑允许组访问这些文件的功能时,事情变得有点复杂......
在 AWS 上是否有更好的方法来完成这项任务?感觉就像一个标准问题。
【问题讨论】:
-
也许考虑构建一个简单的应用程序,用户对其进行身份验证,这需要他们提供您需要的信息(用户名是身份验证中隐含的,但可能需要其他元数据,例如到期日期、成本中心)和然后让您的应用程序提供一个预签名的 PUT URL 供用户用于上传。上传 S3 密钥可以是 UUID。将用户名和提供的元数据存储在与您为上传提供的 S3 对象密钥 (UUID) 关联的 DynamoDB 中。这也可以通过经过身份验证的 API 实现自动化。在 Lambda 中触发新上传的处理。
标签: amazon-web-services amazon-s3 upload amazon-dynamodb storage