Amazon Simple Storage Service (S3) - AWS Mobile SDK for Unity

AWS Mobile SDK for Unity sekarang disertakan dalam AWS SDK for .NET. Panduan ini menjadi referensi versi yang diarsipkan dari Mobile SDK for Unity. Untuk informasi selengkapnya, lihat Apa yang dimaksud dengan AWS Mobile SDK for Unity?

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Amazon Simple Storage Service (S3)

Amazon Simple Storage Service (Amazon S3), menyediakan developer dan tim IT dengan penyimpanan objek yang aman, tahan lama, dan sangat dapat diskalakan. Developer Unity dapat memanfaatkan S3 untuk memuat aset yang digunakan oleh game mereka secara dinamis. Hal ini dapat membuat game awalnya men-download lebih cepat dari toko aplikasi.

Untuk informasi lebih lanjut tentang S3, lihat Amazon S3.

Untuk informasi tentang ketersediaan Wilayah AWS S3, lihat Ketersediaan Wilayah Layanan AWS.

catatan

Beberapa sampel dalam dokumen ini mengasumsikan penggunaan variabel kotak teks yang disebutResultTextuntuk menampilkan output jejak.

Buat dan Lakukan Konfigurasi atas Bucket S3

Amazon S3 menyimpan sumber daya Anda di bucket S3 Amazon - kontainer penyimpanan cloud yang berlokasi di wilayah tertentu. Setiap bucket Amazon S3 harus memiliki nama yang unik secara global. Anda dapat menggunakan Konsol Amazon S3 untuk membuat bucket.

Buat Bucket S3

  1. Masuklah ke Konsol Amazon S3 dan klik Buat Bucket.

  2. Masukkan nama bucket, pilih wilayah, dan klik Buat.

Mengatur Izin untuk S3

Kebijakan IAM role default memberikan akses aplikasi Anda ke Amazon Mobile Analytics dan Amazon Cognito Sync. Agar kolam identitas Cognito Anda dapat mengakses Amazon S3, Anda harus mengubah peran kolam identitas.

  1. Buka Konsol Identity and Access Management dan klik Peran yang di panel sebelah kiri.

  2. Ketik nama kolam identitas Anda ke dalam kotak pencarian. Dua peran akan dicantumkan: satu untuk pengguna yang tidak di-autentikasi dan satu untuk pengguna di-autentikasi.

  3. Klik peran untuk pengguna yang tidak di-autentikasi (hal ini akan menambahkan unauth pada nama kolam identitas Anda).

  4. Klik Buat Kebijakan Peran, pilih Generator Kebijakan, dan kemudian klik Pilih.

  5. Pada halaman Edit Izin, masukkan pengaturan yang ditunjukkan dalam gambar berikut, yang mengganti Amazon Resource Name (ARN) dengan punya Anda sendiri. ARN dari bucket S3 terlihat seperti arn:aws:s3:::examplebucket/* dan terdiri dari wilayah di mana bucket berada dan nama bucket. Pengaturan yang ditunjukkan di bawah ini akan memberikan kolam identitas Anda izin penuh untuk mengakses semua tindakan untuk bucket yang ditentukan.

    Edit Permissions interface for AWS policy creation, showing options for Amazon S3 access control.
  1. Klik tombol Tambah Pernyataan dan kemudian klik Langkah Selanjutnya.

  2. Penuntun akan menunjukkan konfigurasi yang telah Anda buat. Klik Terapkan Kebijakan.

Untuk informasi lebih lanjut tentang pemberian akses ke S3, lihat Memberikan Akses ke bucket Amazon S3.

Unggah File dari Konsol Tersebut

Untuk mengunggah file uji ke bucket Anda:

  1. Di konsol S3, dalam tampilan bucket Anda, klik Unggah.

  2. Klik Tambah File dan pilih file uji yang akan diunggah. Untuk tutorial ini, kami akan menganggap Anda mengunggah gambar bernama myImage.jpg.

  3. Dengan gambar uji yang Anda dipilih, klik Mulai Unggah.

(opsional) Mengkonfigurasi Versi Tanda Tangan untuk Permintaan S3

Setiap interaksi dengan Amazon S3 diautentikasi atau dilakukan secara anonim. AWS menggunakan algoritme Tanda Tangan Versi 4 atau Tanda Tangan Versi 2 untuk meng-autentikasi panggilan ke layanan.

Semua wilayah AWS baru yang dibuat setelah Januari 2014 hanya men-support Tanda Tangan Versi 4. Namun, banyak wilayah lama yang masih men-support permintaan Tanda Tangan Versi 4 dan Tanda Tangan Versi 2.

Jika bucket Anda berada di salah satu wilayah yang tidak men-support permintaan Tanda Tangan Versi 2 sebagaimana tercantum diHalaman ini, Anda harus mengaturAWSConfigsS3.UseSignatureVersion4 properti untuk “true”.

Untuk informasi tentang versi Tanda Tangan AWS, lihat Meng-autentikasi Permintaan (Tanda Tangan AWS Versi 4).

Buat Klien Amazon S3

Untuk menggunakan Amazon S3, pertama kita perlu membuat instans AmazonS3Client yang mengambil referensi ke CognitoAWSCredentialscontoh yang Anda buat sebelumnya:

AmazonS3Client S3Client = new AmazonS3Client (credentials);

Kelas AmazonS3Client ini merupakan titik masuk ke API S3 tingkat tinggi.

Buat Daftar Bucket

Untuk membuat daftar bucket dalam akun AWS, panggil metode AmazonS3Client.ListBucketsAsync seperti yang ditunjukkan dalam kode sampel berikut:

// ResultText is a label used for displaying status information ResultText.text = "Fetching all the Buckets"; Client.ListBucketsAsync(new ListBucketsRequest(), (responseObject) => { ResultText.text += "\n"; if (responseObject.Exception == null) { ResultText.text += "Got Response \nPrinting now \n"; responseObject.Response.Buckets.ForEach((s3b) => { ResultText.text += string.Format("bucket = {0}, created date = {1} \n", s3b.BucketName, s3b.CreationDate); }); } else { ResultText.text += "Got Exception \n"; } });

Daftar Objek

Untuk membuat daftar semua objek dalam bucket, panggil metode AmazonS3Client.ListObjectsAsync seperti yang ditunjukkan dalam kode sampel berikut:

// ResultText is a label used for displaying status information ResultText.text = "Fetching all the Objects from " + S3BucketName; var request = new ListObjectsRequest() { BucketName = S3BucketName }; Client.ListObjectsAsync(request, (responseObject) => { ResultText.text += "\n"; if (responseObject.Exception == null) { ResultText.text += "Got Response \nPrinting now \n"; responseObject.Response.S3Objects.ForEach((o) => { ResultText.text += string.Format("{0}\n", o.Key); }); } else { ResultText.text += "Got Exception \n"; } });

Mengunduh Objek

Untuk mengunduh objek, buat objekGetObjectPermintaan, tentukan nama bucket dan kunci dan teruskan objek ke panggilan ke Client.GetObjectasinkron:

private void GetObject() { ResultText.text = string.Format("fetching {0} from bucket {1}", SampleFileName, S3BucketName); Client.GetObjectAsync(S3BucketName, SampleFileName, (responseObj) => { string data = null; var response = responseObj.Response; if (response.ResponseStream != null) { using (StreamReader reader = new StreamReader(response.ResponseStream)) { data = reader.ReadToEnd(); } ResultText.text += "\n"; ResultText.text += data; } }); }

GetObjectAsync mengambil contoh dariGetObjectPermintaan, callback, danAsyncOptionscontoh. Callback harus dari jenis: AmazonServiceCallback<GetObjectRequest, GetObjectResponse>. ParameterAsyncOptionsinstans adalah opsional. Jika ditentukan, maka ia akan menentukan apakah callback akan berjalan pada utama utama.

Meng-unggah Objek

Untuk meng-unggah objek, tulis objek Anda ke pengaliran, buat objek baruPostObjectMeminta dan menentukan kunci, nama bucket dan data pengaliran.

AWS SDK for Unity menggunakan klien HTTP WWW yang tidak men-support operasi HTTP PUT. Agar dapat meng-unggah objek ke bucket S3 Anda, Anda perlu menggunakan Post Peramban S3, seperti yang ditunjukkan di bawah ini.

public void PostObject(string fileName) { ResultText.text = "Retrieving the file"; var stream = new FileStream(Application.persistentDataPath + Path.DirectorySeparatorChar + fileName, FileMode.Open, FileAccess.Read, FileShare.Read); ResultText.text += "\nCreating request object"; var request = new PostObjectRequest() { Bucket = S3BucketName, Key = fileName, InputStream = stream, CannedACL = S3CannedACL.Private }; ResultText.text += "\nMaking HTTP post call"; Client.PostObjectAsync(request, (responseObj) => { if (responseObj.Exception == null) { ResultText.text += string.Format("\nobject {0} posted to bucket {1}", responseObj.Request.Key, responseObj.Request.Bucket); } else { ResultText.text += "\nException while posting the result object"; ResultText.text += string.Format("\n receieved error {0}", responseObj.Response.HttpStatusCode.ToString()); } }); }