Memulai dengan Node.js - AWS SDK for JavaScript

Panduan Referensi API AWS SDK for JavaScript V3 menjelaskan secara rinci semua operasi API untuk AWS SDK for JavaScript versi 3 (V3).

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

Memulai dengan Node.js

Panduan ini menunjukkan cara menginisialisasi paket NPM, menambahkan klien layanan ke paket Anda, dan menggunakan JavaScript SDK untuk memanggil tindakan layanan.

Skenario

Buat paket NPM baru dengan satu file utama yang melakukan hal berikut:
  • Membuat bucket Amazon Simple Storage Service

  • Menempatkan objek di ember Amazon S3

  • Membaca objek di bucket Amazon S3

  • Mengonfirmasi jika pengguna ingin menghapus sumber daya

Prasyarat

Sebelum Anda dapat menjalankan contoh, Anda harus melakukan hal berikut:

Langkah 1: Siapkan struktur paket dan instal paket klien

Untuk mengatur struktur paket dan menginstal paket klien:

  1. Buat folder baru nodegetstarted untuk berisi paket.

  2. Dari baris perintah, navigasikan ke folder baru.

  3. Jalankan perintah berikut untuk membuat package.json file default:

    npm init -y
  4. Jalankan perintah berikut untuk menginstal paket klien Amazon S3:

    npm i @aws-sdk/client-s3
  5. Tambahkan "type": "module" ke package.json file. Ini memberitahu Node.js untuk menggunakan sintaks ESM modern. Final package.json akan terlihat mirip dengan yang berikut:

    { "name": "example-javascriptv3-get-started-node", "version": "1.0.0", "description": "This guide shows you how to initialize an NPM package, add a service client to your package, and use the JavaScript SDK to call a service action.", "main": "index.js", "scripts": { "test": "vitest run **/*.unit.test.js" }, "author": "Your Name" "license": "Apache-2.0", "dependencies": { "@aws-sdk/client-s3": "^3.420.0" }, "type": "module" }

Langkah 2: Tambahkan impor dan kode SDK yang diperlukan

Tambahkan kode berikut ke file bernama index.js dalam nodegetstarted folder.

// This is used for getting user input. import { createInterface } from "readline/promises"; import { S3Client, PutObjectCommand, CreateBucketCommand, DeleteObjectCommand, DeleteBucketCommand, paginateListObjectsV2, GetObjectCommand, } from "@aws-sdk/client-s3"; export async function main() { // A region and credentials can be declared explicitly. For example // `new S3Client({ region: 'us-east-1', credentials: {...} })` would //initialize the client with those settings. However, the SDK will // use your local configuration and credentials if those properties // are not defined here. const s3Client = new S3Client({}); // Create an Amazon S3 bucket. The epoch timestamp is appended // to the name to make it unique. const bucketName = `test-bucket-${Date.now()}`; await s3Client.send( new CreateBucketCommand({ Bucket: bucketName, }) ); // Put an object into an Amazon S3 bucket. await s3Client.send( new PutObjectCommand({ Bucket: bucketName, Key: "my-first-object.txt", Body: "Hello JavaScript SDK!", }) ); // Read the object. const { Body } = await s3Client.send( new GetObjectCommand({ Bucket: bucketName, Key: "my-first-object.txt", }) ); console.log(await Body.transformToString()); // Confirm resource deletion. const prompt = createInterface({ input: process.stdin, output: process.stdout, }); const result = await prompt.question("Empty and delete bucket? (y/n) "); prompt.close(); if (result === "y") { // Create an async iterator over lists of objects in a bucket. const paginator = paginateListObjectsV2( { client: s3Client }, { Bucket: bucketName } ); for await (const page of paginator) { const objects = page.Contents; if (objects) { // For every object in each page, delete it. for (const object of objects) { await s3Client.send( new DeleteObjectCommand({ Bucket: bucketName, Key: object.Key }) ); } } } // Once all the objects are gone, the bucket can be deleted. await s3Client.send(new DeleteBucketCommand({ Bucket: bucketName })); } } // Call a function if this file was run directly. This allows the file // to be runnable without running on import. import { fileURLToPath } from "url"; if (process.argv[1] === fileURLToPath(import.meta.url)) { main(); }

Kode contoh dapat ditemukan di sini GitHub.

Langkah 3: Jalankan contoh

catatan

Ingatlah untuk masuk! Jika Anda menggunakan IAM Identity Center untuk mengautentikasi, ingatlah untuk masuk menggunakan perintah. AWS CLI aws sso login

  1. Jalankan node index.js.

  2. Pilih apakah akan mengosongkan dan menghapus ember.

  3. Jika Anda tidak menghapus ember, pastikan untuk mengosongkan dan menghapusnya secara manual nanti.