【问题标题】:How to keep track of data uploaded by user with AWS?如何跟踪用户使用 AWS 上传的数据?
【发布时间】: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


【解决方案1】:

AWS 没有用于跟踪每个“用户”上传的内置工具,也没有任何上传限制。这就是您作为 AWS 上的开发人员需要设计和实施的内容。 DynamoDB 是跟踪应用程序中每个用户的 S3 上传和限制的流行选择。

关于组织。这得看情况。如果您的用户通过 Cognito 登录到您的应用程序,则每个用户都将拥有与其关联的 IAM 联合身份。因此,您可以使用此功能组织存储桶并控制用户访问,例如以下链接所示:

用户组,也可以通过 Congito 进行管理。

【讨论】:

    猜你喜欢
    • 2019-08-14
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 2021-04-20
    • 2012-08-18
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    相关资源
    最近更新 更多