Pertimbangan Amazon S3 - AWS SDK for JavaScript

Panduan API Referensi AWS SDK for JavaScript V3 menjelaskan secara rinci semua API operasi 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.

Pertimbangan Amazon S3

Unggahan multipart Amazon S3

Di v2, klien Amazon S3 berisi upload()operasi yang mendukung pengunggahan objek besar dengan fitur unggahan multipart yang ditawarkan oleh Amazon S3.

Di v3, @aws-sdk/lib-storagepaket tersedia. Ini mendukung semua fitur yang ditawarkan dalam upload() operasi v2 dan mendukung runtime Node.js dan browser.

URL yang telah ditetapkan sebelumnya Amazon S3

Di v2, klien Amazon S3 berisi getSignedUrl()dan getSignedUrlPromise()operasi untuk menghasilkan URL yang dapat digunakan pengguna untuk mengunggah atau mengunduh objek dari Amazon S3.

Di v3, @aws-sdk/s3-request-presignerpaket tersedia. Paket ini berisi fungsi untuk keduanya getSignedUrl() dan getSignedUrlPromise() operasi. Posting blog ini membahas detail paket ini.

Pengalihan wilayah Amazon S3

Jika wilayah yang salah diteruskan ke klien Amazon S3 dan kesalahan berikutnya PermanentRedirect (status 301) dilemparkan, klien Amazon S3 di v3 mendukung pengalihan wilayah (sebelumnya dikenal sebagai Klien Global Amazon S3 di v2). Anda dapat menggunakan followRegionRedirectsbendera dalam konfigurasi klien untuk membuat klien Amazon S3 mengikuti pengalihan wilayah dan mendukung fungsinya sebagai klien global.

catatan

Perhatikan bahwa fitur ini dapat menghasilkan latensi tambahan karena permintaan yang gagal dicoba ulang dengan wilayah yang diperbaiki saat menerima PermanentRedirect kesalahan dengan status 301. Fitur ini hanya boleh digunakan jika Anda tidak mengetahui wilayah bucket Anda sebelumnya.

Streaming Amazon S3 dan respons buffer

SDK v3 memilih untuk tidak menyangga respons yang berpotensi besar. Ini biasanya ditemui dalam GetObject operasi Amazon S3, yang mengembalikan Buffer in v2, tetapi mengembalikan a Stream di v3.

Untuk Node.js, Anda harus mengkonsumsi aliran atau sampah mengumpulkan klien atau penangan permintaannya untuk menjaga koneksi tetap terbuka untuk lalu lintas baru dengan membebaskan soket.

// v2 const get = await s3.getObject({ ... }).promise(); // this buffers consumes the stream already.
// v3, consume the stream to free the socket const get = await s3.getObject({ ... }); // object .Body has unconsumed stream const str = await get.Body.transformToString(); // consumes the stream // other ways to consume the stream include writing it to a file, // passing it to another consumer like an upload, or buffering to // a string or byte array.

Untuk informasi lebih lanjut, lihat bagian tentang kelelahan soket.