UnityからAmazon S3にファイルをアップロードし、公開状態にする
https://qiita.com/arumani/items/a0fd345dd224fb5d05db
を参考に同じことをしようとしていますが,S3の処理で失敗します。
csharp
1 2using System.IO; 3using System.Collections; 4using System.Collections.Generic; 5using UnityEngine; 6using Amazon; 7using Amazon.S3; 8using Amazon.S3.Model; 9using Amazon.CognitoIdentity; 10 11public class TestS3 : MonoBehaviour { 12 13 // 以下AWSのテンプレ 14 void Start () { 15 UnityInitializer.AttachToGameObject(this.gameObject); 16 AWSConfigs.HttpClient = AWSConfigs.HttpClientOption.UnityWebRequest; 17 CognitoAWSCredentials credentials = new CognitoAWSCredentials ( 18 "ID プールの ID", // ID プールの ID 19 RegionEndpoint.APNortheast1 // リージョン 20 ); 21 22 // S3の設定とアップ 23 AmazonS3Client S3Client = new AmazonS3Client (credentials, RegionEndpoint.GetBySystemName(RegionEndpoint.APNortheast1.SystemName)); 24 string S3BucketName = "バケット名"; 25 string fileName = "アップしたいファイル名"; 26 27 var stream = new FileStream(Application.streamingAssetsPath + 28 Path.DirectorySeparatorChar + fileName, 29 FileMode.Open, FileAccess.Read, FileShare.Read); 30 31 Debug.Log(Application.streamingAssetsPath + 32 Path.DirectorySeparatorChar + fileName); 33 var request = new PostObjectRequest() 34 { 35 Bucket = S3BucketName, 36 Key = fileName, 37 InputStream = stream, 38 CannedACL = S3CannedACL.PublicRead // 公開状態 39 }; 40 41 S3Client.PostObjectAsync(request, (responseObj) => 42 { 43 if (responseObj.Exception == null) 44 { 45 Debug.Log("success"); 46 } 47 else 48 { 49 Debug.Log("fail");// ←結果がこれになる 50 } 51 }); 52 } 53} 54
どうすればうまくいくでしょうか?
特にわからなかったとこがIAMの設定で,
・ロールポリシーの作成 をクリック
・Policy Generator の枠内にある 選択 をクリック
とうがどこを押せばいいのかわかりませんでしたので以下のように設定しました。
json
1{ 2 "Version": "2012-10-17", 3 "Statement": [ 4 { 5 "Sid": "VisualEditor0", 6 "Effect": "Allow", 7 "Action": [ 8 "mobileanalytics:PutEvents", 9 "cognito-sync:*" 10 ], 11 "Resource": "*" 12 }, 13 { 14 "Sid": "VisualEditor1", 15 "Effect": "Allow", 16 "Action": "s3:*", 17 "Resource": "*" 18 } 19 ] 20}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。