2017-08-14 17 views
0

私は、AWS Cognito & DynamoDBを使用して自分のアプリケーションに公開ファイル共有システムを実装しようとしています。基本的に、ユーザーはCognitoを使用してアカウントを作成してサインインし、このアカウントを使用してファイルをアップロードできます。頻繁にアクセスする必要があるパブリックメタデータは、DynamoDB(評価、ダウンロード数、アップロード日など)およびファイル自体をS3バケットに送ります。Cognitoの制限付きDynamoDB

ファイルを共有しているCognitoユーザーだけがDynamoDBアイテムを削除し、特定のプライベート属性を変更できるように、DynamoDB内のアイテムのプライマリキーとしてCognito IDを使用しています。ルールas described in the docs。 Afaikには他の解決策はありません。

これまでのところ、これは明らかに、DynamoDBアイテムの主キー属性が一意である必要があるため、ユーザーがデータベースに複数のアイテムをアップロードできないことを意味します。これは、Cognito ID彼らのために。

私はもちろん、ユーザーごとに1つのアイテムを作成し、彼は内部のマップを所有している各ファイルのメタデータを格納しますが、これは私がなど、日付、評価、

Iによって項目を照会することができませんでした正直なところ立ち往生して、私のデータベース項目を他の方法で構築する方法を考えることはできません。これはDynamoDBでも実現可能ですか?

+0

主キーをCognito IDとして保持しながら、範囲キーを各画像のGUIDとして追加しましたか? – Ashan

+0

@Ashan本当にありがとう、ありがとう。私はテーブルを再作成し、セットアップにソートキーを追加しました。 – domp

+0

probsはありません。私は将来の他の人のために答えを更新しました。 – Ashan

答えて

1

プライマリキーをCognito IDとして維持しながら、各ファイルに対して一意のIDを持つ範囲キーを作成し、DynamoDBファイングレイン認証を保持することができます。

関連する問題