UnityからAmazon S3にファイルをアップロードし、公開状態にする
UnityからAmazon S3にファイルをアップロードし、公開状態にする
https://qiita.com/arumani/items/a0fd345dd224fb5d05db
を参考に同じことをしようとしていますが,S3の処理で失敗します。
using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using Amazon.CognitoIdentity;
public class TestS3 : MonoBehaviour {
// 以下AWSのテンプレ
void Start () {
UnityInitializer.AttachToGameObject(this.gameObject);
AWSConfigs.HttpClient = AWSConfigs.HttpClientOption.UnityWebRequest;
CognitoAWSCredentials credentials = new CognitoAWSCredentials (
"ID プールの ID", // ID プールの ID
RegionEndpoint.APNortheast1 // リージョン
);
// S3の設定とアップ
AmazonS3Client S3Client = new AmazonS3Client (credentials, RegionEndpoint.GetBySystemName(RegionEndpoint.APNortheast1.SystemName));
string S3BucketName = "バケット名";
string fileName = "アップしたいファイル名";
var stream = new FileStream(Application.streamingAssetsPath +
Path.DirectorySeparatorChar + fileName,
FileMode.Open, FileAccess.Read, FileShare.Read);
Debug.Log(Application.streamingAssetsPath +
Path.DirectorySeparatorChar + fileName);
var request = new PostObjectRequest()
{
Bucket = S3BucketName,
Key = fileName,
InputStream = stream,
CannedACL = S3CannedACL.PublicRead // 公開状態
};
S3Client.PostObjectAsync(request, (responseObj) =>
{
if (responseObj.Exception == null)
{
Debug.Log("success");
}
else
{
Debug.Log("fail");// ←これになる
}
});
}
}
どうすればうまくいくでしょうか?
特にわからなかったとこがIAMの設定で,
・ロールポリシーの作成 をクリック
・Policy Generator の枠内にある 選択 をクリック
とうがどこを押せばいいのかわかりませんでしたので以下のように設定しました。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"mobileanalytics:PutEvents",
"cognito-sync:*"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}