2017-05-03 4 views
0

これはおそらくSOに何度も掘り下げられているでしょうが、ここでも流れの中で私の頭を得ることはできません。誰かが私が行方不明になるかもしれないことについてここでいくつかの光を投げるのを助けてください!モバイルアプリからのAWS S3アクセス用の事前署名済みURLの生成

私はバックエンドのチャットサーバーをErlangに、モバイル端末のメッセージをAWS S3に保存しています。ユーザーがグループに写真を送信したときに、そのグループのメンバーだけがダウンロードでき、他のメンバーはダウンロードできないようにしたいと考えています。

チャットの受信者(グループメンバー)に事前に署名したURL(アップロードされた写真のURL)を配布して、直接ダウンロードできるようにする必要があります。

私の質問は次のとおりです。これらの事前署名されたURLを生成するにはどうすればよいですか? AWS Cognitoはここでどのような役割を果たしていますか?モバイルアプリで照会できる新しいWebサービスを構築する必要がありますか?したがって、このWebサービスはCognitoのgetIdentityId()を呼び出し、モバイルクライアントに渡されたバケット名/キーとともにレスポンスを使用して事前署名されたURLを生成し、モバイルクライアントに戻します。このURLをグループチャットの受信者に配布しますか?

または、Cognitoの資格情報プロバイダとユーザープールIDをモバイルソースコードに含めると、iOS/Androidアプリ自体が前記URLを生成する必要がありますか?

おかげさまで、長い間おびえました!

+0

は、事前に署名したURLは、URLを持っている誰もが使用できることに注意してください。したがって、画像はグループメンバーがURLを持つ唯一のメンバーである限り、グループメンバーがダウンロードできるようになります。 – jbird

+0

ありがとう@jbird - それは完璧な意味を持っています...私は実際にSDKを直接使用し、URLに頼るのではなく、認証されたユーザーに必要な権限を与えています... – vikram17000

答えて

2

Cognito認証情報は、SDKによって生成された事前署名されたURLに署名するために使用されます。事前署名されたURLが有効な資格情報で署名されていない場合、ダウンロードの取得要求は失敗します。

次に、AWSリソースにアクセスするための一時的な認証情報を取得するアプリケーションにcognitoプールIDが存在する必要があります。

おかげで、 ローハン

+0

ありがとう@Rohan Dubal - 私はようやく前進し、事前に署名されたURLを使用せずに直接SDKを活用し始めました。あなたの答えをありがとう! – vikram17000

関連する問題