Topik ini menjelaskan cara mengunggah file (objek) ke bucket yang telah diaktifkan fitur versioning-nya.
Simple upload
Pada bucket dengan versioning diaktifkan, OSS secara otomatis menghasilkan ID versi unik untuk setiap objek yang baru ditambahkan dan mengembalikan ID tersebut dalam header respons x-oss-version-id. Pada bucket dengan versioning ditangguhkan, ID versi objek yang baru ditambahkan bernilai "null". Jika Anda mengunggah objek dengan nama yang sama, objek baru akan menimpa objek sebelumnya. OSS memastikan hanya satu versi objek yang dapat memiliki ID versi "null".
Kode berikut menunjukkan cara melakukan simple upload:
const OSS = require('ali-oss');
const client = new OSS({
// Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
region: 'yourregion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Setel bucket ke nama bucket Anda.
bucket: 'yourbucketname'
});
async function put() {
const result = await client.put('fileName', path.normalize('D:\\localpath\\examplefile.txt'));
console.log(result.res.headers['x-oss-version-id']); // Lihat ID versi objek yang diunggah.
}
put();Append upload
Pada bucket yang diaktifkan versioning-nya, Anda hanya dapat melakukan operasi append (AppendObject) pada versi terkini dari objek yang dapat ditambahkan. Anda tidak dapat melakukan operasi AppendObject pada versi sebelumnya dari objek tersebut.
Saat Anda melakukan operasi AppendObject pada versi terkini dari objek yang dapat ditambahkan, OSS tidak membuat versi sebelumnya untuk objek tersebut.
Saat Anda melakukan operasi PutObject atau DeleteObject pada versi terkini dari objek yang dapat ditambahkan, OSS menyimpan versi terkini tersebut sebagai versi sebelumnya. Anda tidak lagi dapat menambahkan data ke objek ini.
Anda tidak dapat melakukan operasi AppendObject pada versi terkini dari objek yang tidak dapat ditambahkan, seperti objek biasa atau delete marker.
Kode berikut menunjukkan cara melakukan append upload:
const OSS = require('ali-oss');
const client = new OSS({
// Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
region: 'yourregion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Setel bucket ke nama bucket Anda.
bucket: 'yourbucketname'
});
async function append() {
await client.append('filename', path.normalize('D:\\localpath\\examplefile.txt'), {
partSize: 100 * 1024
});
}
append();Multipart upload
Pada bucket yang diaktifkan versioning-nya, Anda dapat memanggil metode multipartUpload untuk mengunggah file secara bertahap. Setelah proses unggah multi-bagian selesai, OSS menghasilkan ID versi unik untuk seluruh file tersebut dan mengembalikan ID tersebut dalam header respons x-oss-version-id.
Kode berikut menunjukkan cara melakukan multipart upload:
const OSS = require('ali-oss');
const client = new OSS({
// Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
region: 'yourregion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Setel bucket ke nama bucket Anda.
bucket: 'yourbucketname'
});
async function multipartUpload() {
const result = await client.multipartUpload('filename', path.normalize('D:\\localpath\\examplefile.txt'), {
partSize: 100 * 1024
});
// Lihat ID versi objek yang diunggah.
console.log(result.res.headers['x-oss-version-id']);
}
multipartUpload();Referensi
Untuk informasi lebih lanjut tentang simple upload, lihat PutObject.
Untuk informasi lebih lanjut tentang append upload, lihat AppendObject.
Untuk informasi lebih lanjut tentang multipart upload, lihat CompleteMultipartUpload.