【问题标题】:DynamoDB with Cognito limitations具有 Cognito 限制的 DynamoDB
【发布时间】:2018-01-21 20:31:24
【问题描述】:

我正在尝试使用 AWS Cognito 和 DynamoDB 为我的应用程序实施公共文件共享系统。基本上,用户可以使用 Cognito 创建并登录一个帐户,并使用该帐户上传他们的文件。需要经常访问的公共元数据(例如评分、下载次数、上传日期等)会进入 DynamoDB,文件本身会进入 S3 存储桶。

为确保仅允许共享文件的 Cognito 用户删除 DynamoDB 项目并修改某些私有属性,我使用 Cognito 身份 ID 作为我在 DynamoDB 中的项目的主键,并结合了策略规则as described in the docs。 Afaik 没有其他解决方案。

到目前为止一切都很好,但这显然意味着用户不能将超过 1 个项目上传到数据库,因为 DynamoDB 项目的主键属性需要是唯一的,这是不可能的,因为我使用 Cognito 身份 ID他们。

我当然可以为每个用户创建一个项目,并将他拥有的每个文件的元数据存储在地图中,但这不允许我按日期、评级等查询项目。

老实说,我被困住了,想不出任何其他方式来构建我的数据库项目以使其工作。这对 DynamoDB 是否可行?

【问题讨论】:

  • 您是否考虑过为每个图像添加一个范围键作为 guid,同时将主键保留为 cognito id?
  • @Ashan 非常感谢,这确实有效。我重新创建了表格并在设置时添加了一个排序键。
  • 没有问题。我已经更新了答案以供其他人将来参考。

标签: amazon-web-services amazon-dynamodb amazon-cognito


【解决方案1】:

您可以为每个文件创建一个具有唯一 ID 的范围键,同时将主键保持为 Cognito id,这允许保持 DynamoDB 细粒度授权。

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 2017-11-19
    • 2019-01-01
    • 2021-06-23
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2020-11-11
    • 2020-05-01
    相关资源
    最近更新 更多