AWS SDK untuk JavaScript V2 telah mencapai akhir dukungan. Kami menyarankan Anda bermigrasi ke AWS SDK untuk JavaScript v3. Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat pengumuman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan Kebijakan Amazon S3 Bucket
Contoh Node.js kode ini menunjukkan:
-
Cara mengambil kebijakan bucket dari bucket Amazon S3.
-
Cara menambahkan atau memperbarui kebijakan bucket dari bucket Amazon S3.
-
Cara menghapus kebijakan bucket dari bucket Amazon S3.
Skenario
Dalam contoh ini, serangkaian Node.js modul digunakan untuk mengambil, mengatur, atau menghapus kebijakan bucket pada bucket Amazon S3. Node.js Modul menggunakan SDK for JavaScript untuk mengonfigurasi kebijakan untuk bucket Amazon S3 yang dipilih menggunakan metode kelas klien Amazon S3 berikut:
Untuk informasi selengkapnya tentang kebijakan bucket untuk bucket Amazon S3, lihat Menggunakan Kebijakan Bucket dan Kebijakan Pengguna di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
Tugas Prasyarat
Untuk mengatur dan menjalankan contoh ini, Anda harus menyelesaikan tugas ini terlebih dahulu:
-
Instal Node.js. Untuk informasi lebih lanjut tentang menginstal Node.js, lihat situs Node.js web
. -
Buat file konfigurasi bersama dengan kredenSIAL pengguna Anda. Untuk informasi selengkapnya tentang menyediakan file kredenSIAL bersama, lihatMemuat Kredensial di Node.js dari File Kredensial Bersama.
Mengkonfigurasi SDK
Konfigurasikan SDK untuk JavaScript dengan membuat objek konfigurasi global lalu mengatur Wilayah untuk kode Anda. Dalam contoh ini, Wilayah diatur keus-west-2.
// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the Region AWS.config.update({region: 'us-west-2'});
Mengambil Kebijakan Bucket Saat Ini
Buat Node.js modul dengan nama files3_getbucketpolicy.js. Modul mengambil argumen baris perintah tunggal yang menentukan bucket yang kebijakannya Anda inginkan. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya.
Buat objek AWS.S3 layanan. Satu-satunya parameter yang perlu Anda lewati adalah nama bucket yang dipilih saat memanggil getBucketPolicy metode. Jika bucket saat ini memiliki kebijakan, kebijakan tersebut dikembalikan oleh Amazon S3 dalam data parameter yang diteruskan ke fungsi callback.
Jika bucket yang dipilih tidak memiliki kebijakan, informasi tersebut dikembalikan ke fungsi callback dalam error parameter.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); var bucketParams = { Bucket: process.argv[2] }; // call S3 to retrieve policy for selected bucket s3.getBucketPolicy(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else if (data) { console.log("Success", data.Policy); } });
Untuk menjalankan contoh, ketik berikut ini di baris perintah.
node s3_getbucketpolicy.jsBUCKET_NAME
Kode sampel ini dapat ditemukan di sini GitHub
Menetapkan Kebijakan Bucket Sederhana
Buat Node.js modul dengan nama files3_setbucketpolicy.js. Modul mengambil argumen baris perintah tunggal yang menentukan bucket yang kebijakannya ingin Anda terapkan. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.
Buat objek AWS.S3 layanan. Kebijakan bucket ditentukan dalam JSON. Pertama, buat objek JSON yang berisi semua nilai untuk menentukan kebijakan kecuali untuk Resource nilai yang mengidentifikasi bucket.
Format Resource string yang diperlukan oleh kebijakan, memasukkan nama bucket yang dipilih. Masukkan string itu ke objek JSON. Siapkan parameter untuk putBucketPolicy metode, termasuk nama bucket dan kebijakan JSON yang dikonversi ke nilai string.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); var readOnlyAnonUserPolicy = { Version: "2012-10-17", Statement: [ { Sid: "AddPerm", Effect: "Allow", Principal: "*", Action: ["s3:GetObject"], Resource: [""], }, ], }; // create selected bucket resource string for bucket policy var bucketResource = "arn:aws:s3:::" + process.argv[2] + "/*"; readOnlyAnonUserPolicy.Statement[0].Resource[0] = bucketResource; // convert policy JSON into string and assign into params var bucketPolicyParams = { Bucket: process.argv[2], Policy: JSON.stringify(readOnlyAnonUserPolicy), }; // set the new policy on the selected bucket s3.putBucketPolicy(bucketPolicyParams, function (err, data) { if (err) { // display error message console.log("Error", err); } else { console.log("Success", data); } });
Untuk menjalankan contoh, ketik berikut ini di baris perintah.
node s3_setbucketpolicy.jsBUCKET_NAME
Kode sampel ini dapat ditemukan di sini GitHub
Menghapus Kebijakan Bucket
Buat Node.js modul dengan nama files3_deletebucketpolicy.js. Modul mengambil argumen baris perintah tunggal yang menentukan bucket yang kebijakannya ingin Anda hapus. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.
Buat objek AWS.S3 layanan. Satu-satunya parameter yang perlu Anda lewati saat memanggil deleteBucketPolicy metode adalah nama bucket yang dipilih.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); var bucketParams = { Bucket: process.argv[2] }; // call S3 to delete policy for selected bucket s3.deleteBucketPolicy(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else if (data) { console.log("Success", data); } });
Untuk menjalankan contoh, ketik berikut ini di baris perintah.
node s3_deletebucketpolicy.jsBUCKET_NAME
Kode sampel ini dapat ditemukan di sini GitHub