Objek dalam Object Storage Service (OSS) terdiri dari kunci, data, dan metadata objek. Metadata objek menjelaskan properti suatu objek, mencakup Header HTTP standar dan metadata yang ditentukan pengguna. Anda dapat mengatur Header HTTP standar untuk menyesuaikan kebijakan permintaan HTTP—seperti kebijakan cache objek atau kebijakan unduhan paksa—serta menetapkan metadata yang ditentukan pengguna untuk mengidentifikasi tujuan atau properti objek tersebut.
Tentukan metadata objek saat mengunggah
Saat menggunakan operasi put, putStream, atau multipartUpload, Anda dapat menentukan parameter meta untuk mengatur metadata objek:
const OSS = require('ali-oss');
const path = require('path');
const client = new OSS({
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// Atur yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi oss-cn-hangzhou.
region: 'oss-cn-hangzhou',
// Gunakan Signature V4.
authorizationV4: true,
// Atur yourBucketName ke nama bucket.
bucket: 'yourBucketName',
// Atur yourEndpoint ke titik akhir Internet wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
});
async function put() {
try {
// Atur metadata sebagai properti meta dari objek options.
let result = await client.put('object-name', path.normalize('D:\\localpath\\examplefile.txt'), {
meta: {
year: '2025', // Nilai metadata harus berupa string.
people: 'mary'
}
});
console.log(result);
} catch (e) {
console.log(e);
}
}
put();Ubah metadata objek yang sudah ada
Anda juga dapat menggunakan operasi putMeta untuk memperbarui metadata objek:
const OSS = require('ali-oss');
const client = new OSS({
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// Atur yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi oss-cn-hangzhou.
region: 'oss-cn-hangzhou',
// Gunakan Signature V4.
authorizationV4: true,
// Atur yourBucketName ke nama bucket.
bucket: 'yourBucketName',
// Atur yourEndpoint ke titik akhir Internet wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
});
async function putMeta() {
try {
let meta = { year: 2025, people: 'jack' };
let result = await client.putMeta('object-name', meta);
console.log(result);
} catch (e) {
console.log(e);
}
}
putMeta();Ambil metadata objek
Anda dapat menggunakan operasi head untuk mengambil metadata objek.
const OSS = require('ali-oss');
const client = new OSS({
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// Atur yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi oss-cn-hangzhou.
region: 'oss-cn-hangzhou',
// Gunakan Signature V4.
authorizationV4: true,
// Atur yourBucketName ke nama bucket.
bucket: 'yourBucketName',
// Atur yourEndpoint ke titik akhir Internet wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
});
async function headInfo() {
// Tentukan path lengkap objek, misalnya exampledir/exampleobject.txt. Path lengkap tidak boleh mengandung nama bucket.
const result = await client.head("exampledir/exampleobject.txt");
console.log(result);
}
headInfo();