Topik ini menjelaskan cara mengonfigurasi dan mengkueri metadata objek menggunakan Object Storage Service (OSS) SDK untuk Harmony.
Catatan penggunaan
Untuk informasi lebih lanjut tentang wilayah dan titik akhir, lihat Wilayah dan titik akhir.
Untuk menetapkan metadata objek, Anda harus memiliki izin
oss:PutObject. Untuk mengkueri metadata objek, Anda harus memiliki izinoss:GetObject. Untuk informasi selengkapnya, lihat Berikan izin kustom kepada RAM user.
Konfigurasikan metadata objek saat Anda mengunggah objek
Berikut adalah contoh kode yang menunjukkan cara menyetel daftar kontrol akses (ACL) objek menjadi public-read saat mengunggah objek:
import Client, { EObjectAcl, RequestError } from '@aliyun/oss';
// Buat instance OSSClient.
const client = new Client({
// Tentukan ID AccessKey yang diperoleh dari Security Token Service (STS).
accessKeyId: 'yourAccessKeyId',
// Tentukan Rahasia AccessKey yang diperoleh dari STS.
accessKeySecret: 'yourAccessKeySecret',
// Tentukan token keamanan yang diperoleh dari STS.
securityToken: 'yourSecurityToken',
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke oss-cn-hangzhou.
region: 'oss-cn-hangzhou',
});
const bucket = 'yourBucketName'; // Tentukan nama bucket.
const key='yourObjectName '; // Tentukan nama objek.
const putObject = async () => {
try {
// Gunakan metode putObject untuk mengunggah data ke objek di bucket yang ditentukan dan lewati parameter.
const res = await client.putObject({
bucket, // Tentukan nama bucket.
key, // Tentukan nama objek.
data: 'hello world' // Tentukan data yang ingin Anda unggah. Dalam contoh ini, string sederhana diunggah.
objectAcl: EObjectAcl.PRIVATE
});
// Tampilkan hasil operasi unggah objek.
console.log(JSON.stringify(res));
} catch (err) {
// Tangkap pengecualian selama permintaan.
if (err instanceof RequestError) {
// Jika jenis kesalahan yang diketahui ada, tampilkan informasi seperti kode kesalahan, pesan kesalahan, ID permintaan, kode status HTTP, dan EC.
console.log('code: ', err.code);
console.log('message: ', err.message);
console.log('requestId: ', err.requestId);
console.log('status: ', err.status);
console.log('ec: ', err.ec);
} else {
// Tampilkan jenis kesalahan lain yang tidak diketahui.
console.log('unknown error: ', err);
}
}
}
// Panggil fungsi putObject untuk melakukan operasi unggah objek.
putObject();Kueri metadata objek
Gunakan metode HeadObject untuk mengambil semua metadata objek
Kode contoh berikut menunjukkan cara mengkueri semua metadata objek menggunakan metode HeadObject:
import Client, { RequestError } from '@aliyun/oss';
// Buat instance OSSClient.
const client = new Client({
// Tentukan ID AccessKey yang diperoleh dari STS.
accessKeyId: 'yourAccessKeyId',
// Tentukan Rahasia AccessKey yang diperoleh dari STS.
accessKeySecret: 'yourAccessKeySecret',
// Tentukan token keamanan yang diperoleh dari STS.
securityToken: 'yourSecurityToken',
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke oss-cn-hangzhou.
region: 'oss-cn-hangzhou',
});
// Tentukan nama bucket.
const bucket = 'yourBucketName';
// Tentukan nama objek.
const key = 'yourObjectName';
/**
* Tanyakan metadata objek.
* Gunakan metode HeadObject untuk menanyakan metadata objek tanpa mengunduh objek.
*/
const headObject = async () => {
try {
// Gunakan metode HeadObject untuk menanyakan metadata objek.
const res = await client.headObject({
bucket, // Tentukan nama bucket.
key, // Tentukan nama objek.
});
// Tampilkan metadata objek.
console.log(JSON.stringify(res));
} catch (err) {
// Tangkap pengecualian selama permintaan.
if (err instanceof RequestError) {
// Jika jenis kesalahan yang diketahui ada, tampilkan informasi seperti kode kesalahan, pesan kesalahan, ID permintaan, kode status HTTP, dan EC.
console.log('code: ', err.code); // Kode kesalahan.
console.log('message: ', err.message); // Pesan kesalahan.
console.log('requestId: ', err.requestId); // ID permintaan.
console.log('status: ', err.status); // Kode status HTTP.
console.log('ec: ', err.ec); // EC.
} else {
// Tampilkan jenis kesalahan lain yang tidak diketahui.
console.log('unknown error: ', err);
}
}
};
// Panggil fungsi headObject untuk menanyakan metadata objek.
headObject();
Gunakan GetObjectMeta untuk memperoleh sebagian metadata objek
Anda dapat menggunakan metode GetObjectMeta untuk menanyakan hanya metadata sebagian objek, termasuk panjang konten yang dikembalikan (ContentLength), tag entitas (ETag), waktu modifikasi terakhir (LastModified), waktu akses terakhir (LastAccessTime), ID versi (VersionId), dan hash CRC-64 (HashCRC64).
Kode contoh berikut menunjukkan cara mengkueri metadata parsial objek menggunakan metode GetObjectMeta:
import Client, { RequestError } from '@aliyun/oss';
// Buat instance OSSClient.
const client = new Client({
// Tentukan ID AccessKey yang diperoleh dari STS.
accessKeyId: 'yourAccessKeyId',
// Tentukan Rahasia AccessKey yang diperoleh dari STS.
accessKeySecret: 'yourAccessKeySecret',
// Tentukan token keamanan yang diperoleh dari STS.
securityToken: 'yourSecurityToken',
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke oss-cn-hangzhou.
region: 'oss-cn-hangzhou',
});
// Tentukan nama bucket.
const bucket = 'yourBucketName';
// Tentukan nama objek.
const key = 'yourObjectName';
/**
* Tanyakan metadata objek.
* Gunakan metode getObjectMeta untuk menanyakan metadata objek, termasuk header HTTP.
*/
const getObjectMeta = async () => {
try {
// Gunakan metode getObjectMeta untuk menanyakan metadata objek.
const res = await client.getObjectMeta({
bucket, // Tentukan nama bucket.
key, // Tentukan nama objek.
});
// Tampilkan metadata objek.
console.log(JSON.stringify(res));
} catch (err) {
// Tangkap pengecualian selama permintaan.
if (err instanceof RequestError) {
// Jika jenis kesalahan yang diketahui ada, tampilkan informasi seperti kode kesalahan, pesan kesalahan, ID permintaan, kode status HTTP, dan EC.
console.log('code: ', err.code); // Kode kesalahan.
console.log('message: ', err.message); // Pesan kesalahan.
console.log('requestId: ', err.requestId); // ID permintaan.
console.log('status: ', err.status); // Kode status HTTP.
console.log('ec: ', err.ec); // EC.
} else {
// Tampilkan jenis kesalahan lain yang tidak diketahui.
console.log('unknown error: ', err);
}
}
};
// Panggil fungsi getObjectMeta untuk menanyakan metadata objek.
getObjectMeta();