Android で 1 つのファイルを s3 バケットにアップロードする必要があります。Cognito ユーザープールでアップロードを認証したいと考えています。
これを行う標準的な方法は、Amazon Amplify SDK の Storage API を使用することです。
問題は、アップロードの進行状況を報告する必要があることです。Amplify Storage では、Android で進行状況を監視するリスナーを設定できません。
それは私を使用する必要性に私を連れて行きますTransferUtility
。
Cognito と TransferUtility を使用してアップロード操作を認証するにはどうすればよいですか?
現時点で私はやっています:
val credentials = CognitoCachingCredentialsProvider(
context,
"eu-west-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
Regions.US_WEST_1)
val s3Client = AmazonS3Client(credentials, Region.getRegion(Regions.US_WEST_1))
val transferUtility = TransferUtility.builder()
.context(context)
.s3Client(s3Client)
.build()
しかし、私は403を取得しています:
com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: XXXXXXXXXXX), S3 Extended Request ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx=
Storage
API が よりも優先されているようTransferUtility
で、Cognito ユーザープールまたはユーザー ID に関係することはすべて Amplitude Storage で行われているため、これに関するドキュメントを入手するのに本当に苦労しています。