UnityからS3にファイルをアップロードするメモ
UnityでAWSにスクリプトからファイルアップロードする部分で詰まったので備忘録も兼ねえて投稿します。
1.アクセスキーとシークレットキーの取得。
こちらの記事を参考にアクセスキーとシークレットキー取得。
シークレットキーは閉じてしまうと入手することが出来ないため気を付けてください。
2.AWS SDK for .NETをダウンロード
こちらのサイトからaws-sdk-netstandard2.0.zipをダウンロードし、展開後Assets/Pluginsの中に必要なファイルをコピーします。
今回はS3を使用するため、AWSSDK.Core.dllとAWSSDK.S3.dllをコピーしました。
3.依存関係のdllをダウンロードする。
こちらの記事の依存しているDLLもコピー(依存関係の解決)タブを参考にNuGetのパッケージ提供ページからPluginsにdllをインストールします。
4.C#スクリプトの作成
C#スクリプトをいかに示します。
using System.Collections;
using UnityEngine;
using Amazon.S3;
using Amazon.S3.Model;
using Amazon;
public class AWS_Update : MonoBehaviour
{
public void Update_text()
{
AmazonS3Client s3Client = new AmazonS3Client("AccessKey", "SecretKey", RegionEndpoint.APNortheast1);
s3Client.PutObjectAsync(new PutObjectRequest
{
BucketName = "BucketName",
Key = "Filename",
FilePath = "Filepath"
}).Wait();
}
}
このスクリプトではPutObjectAsync メソッドの同期版を使用していますが、非同期で行うこともできます。
その場合は以下のようになります。
await s3Client.PutObjectAsync(new PutObjectRequest
{
BucketName = "my-bucket",
Key = "file.txt",
FilePath = "C:\\path\\to\\file.txt"
});
5.終了
以上でS3にファイルアップロードするスクリプトができたかと思います。
何か質問があればお気軽にどうぞ。
Unityのバージョンは2022.3.12を使用しています。