画像情報をBase64でデコードしてS3にアップロードする処理を以下のようにコーディングをしております。
Java
1 AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(Regions.AP_NORTHEAST_1).build(); 2 ・ 3 ・ 4 ・ 5 ・ 6 PutObjectRequest putObjectRequest = new PutObjectRequest( 7 // アップロード先バケット名 8 S3_VACKATE_NAME, 9 // アップロード先のパス(キー名) 10 fileName, 11 // ファイルの実体 12 inputStream, 13 //メタ情報 14 metaData); 15 // アップロード 16 s3Client.putObject(putObjectRequest); 17
ローカル環境のeclipseからS3へ画像アップロードすることは確認できたのですが、
ラムダにデプロイしてから実行すると「Access Denied」になってしまいます。
ラムダの実行roleにAmazonS3FullAccessのポリシーを付与。
バケットの方は、パブリックブロックのチェックを外し、
バケットポリシーも以下のような設定をしました。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::【アカウント】:role/api-backend-Execution" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::【バケット名】/*" } ] }
どなたか、詳しい方ご教示頂きますと幸いです。
aws-java-sdk-bomのバージョンは1.11.327を使用しております。
あなたの回答
tips
プレビュー