全部产品
Search
文档中心

Object Storage Service:Setel tag objek (Node.js SDK)

更新时间:Nov 30, 2025

OSS mendukung penandaan objek untuk mengklasifikasikan objek dalam bucket. Anda dapat menetapkan aturan siklus hidup dan izin akses untuk objek yang memiliki tag yang sama.

Catatan

  • Sebelum mengonfigurasi tag objek, pastikan Anda memahami fitur ini. Untuk informasi selengkapnya, lihat Object tagging.

  • Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk detail wilayah dan titik akhir yang didukung, lihat Regions and endpoints.

  • Kredensial akses pada topik ini diperoleh dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Configure access credentials.

  • Instans OSSClient pada topik ini dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Configuration examples for common scenarios.

  • Penandaan objek hanya didukung di Java SDK versi 3.5.0 ke atas.

  • Untuk menyetel tag objek, Anda harus memiliki izin oss:PutObjectTagging. Untuk informasi selengkapnya, lihat Grant custom access policies to RAM users.

Tambahkan tag objek saat mengunggah objek

  • Tambahkan tag objek saat unggah simple

    Kode berikut menunjukkan cara menambahkan tag objek saat unggah simple menggunakan metode PutObject.

    const OSS = require('ali-oss')
    
    const client = new OSS({
      // Setel region ke wilayah tempat bucket berada. Misalnya, setel region ke oss-cn-hangzhou untuk China (Hangzhou).
      region: 'yourregion',
      // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Tentukan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contohnya, exampledir/exampleobject.txt.
    const objectName = 'exampledir/exampleobject.txt'
    // Tentukan path lengkap file lokal. Contohnya, D:\\localpath\\examplefile.txt.
    // Jika Anda hanya menentukan nama file lokal (misalnya, examplefile.txt) tanpa path lengkap, file akan diunggah dari path lokal yang sesuai dengan proyek program contoh.
    const localFilepath = 'D:\\localpath\\examplefile.txt'
    
    // Setel header permintaan.
    const headers = {
      // Tentukan kunci (misalnya, owner) dan nilai (misalnya, John) tag objek.
      'x-oss-tagging': 'owner=John&type=document', 
    }
    
    client.put(objectName, localFilepath, {
      headers
    })
  • Tambahkan tag objek saat unggah multi-bagian

    Kode berikut menunjukkan cara menambahkan tag objek saat unggah multi-bagian menggunakan metode multipartUpload.

    const OSS = require('ali-oss')
    
    const client = new OSS({
      // Setel region ke wilayah tempat bucket berada. Misalnya, setel region ke oss-cn-hangzhou untuk China (Hangzhou).
      region: 'yourregion',
      // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Tentukan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contohnya, exampledir/exampleobject.txt.
    const objectName = 'exampledir/exampleobject.txt'
    // Tentukan path lengkap file lokal. Contohnya, D:\\localpath\\examplefile.txt.
    // Jika Anda hanya menentukan nama file lokal (misalnya, examplefile.txt) tanpa path lengkap, file akan diunggah dari path lokal yang sesuai dengan proyek program contoh.
    const localFilepath = 'D:\\localpath\\examplefile.txt'
    
    // Setel header permintaan.
    const headers = {
      // Tentukan kunci (misalnya, owner) dan nilai (misalnya, John) tag objek.
      'x-oss-tagging': 'owner=John&type=document', 
    }
    
    
    async function setTag() {
      await client.multipartUpload(objectName, localFilepath, {
        // Setel ukuran bagian dalam byte. Ukuran bagian minimum adalah 100 KB. Ukuran bagian terakhir tidak dibatasi.
        partSize: 100 * 1024,
        headers
      });
      const tag = await client.getObjectTagging(objectName);
      console.log(tag);
    }
    
    setTag()
  • Tambahkan tag objek saat unggah append

    Kode berikut menunjukkan cara menambahkan tag objek saat unggah append menggunakan metode AppendObject.

    const OSS = require('ali-oss')
    
    const client = new OSS({
      // Setel region ke wilayah tempat bucket berada. Misalnya, setel region ke oss-cn-hangzhou untuk China (Hangzhou).
      region: 'yourregion',
      // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Tentukan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contohnya, exampledir/exampleobject.txt.
    const objectName = 'exampledir/exampleobject.txt'
    // Tentukan path lengkap file lokal. Contohnya, D:\\localpath\\examplefile.txt.
    // Jika Anda hanya menentukan nama file lokal (misalnya, examplefile.txt) tanpa path lengkap, file akan diunggah dari path lokal yang sesuai dengan proyek program contoh.
    const localFilepath = 'D:\\localpath\\examplefile.txt'
    
    // Setel header permintaan.
    const headers = {
      // Tentukan kunci (misalnya, owner) dan nilai (misalnya, John) tag objek.
      'x-oss-tagging': 'owner=John&type=document',
    }
    
    
    // Tambahkan data ke objek. Jika Anda menentukan header dalam operasi append, tag akan disetel untuk objek tersebut.
    // Hanya tag yang disetel pada operasi append pertama yang berlaku. Tag yang disetel pada operasi append berikutnya akan diabaikan.
    async function setTag() {
      await client.append(objectName, localFilepath, {
        // Setel ukuran bagian dalam byte. Ukuran bagian minimum adalah 100 KB. Ukuran bagian terakhir tidak dibatasi.
        partSize: 100 * 1024,
        headers
      });
      const tag = await client.getObjectTagging(objectName);
      console.log(tag);
    }
    
    
    setTag()
  • Tambahkan tag objek saat unggah yang dapat dilanjutkan

    Kode berikut menunjukkan cara menambahkan tag objek saat unggah yang dapat dilanjutkan menggunakan metode multipartUpload.

    const OSS = require('ali-oss')
    
    const client = new OSS({
      // Setel region ke wilayah tempat bucket berada. Misalnya, setel region ke oss-cn-hangzhou untuk China (Hangzhou).
      region: 'yourregion',
      // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Tentukan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contohnya, exampledir/exampleobject.txt.
    const objectName = 'exampledir/exampleobject.txt'
    // Tentukan path lengkap file lokal. Contohnya, D:\\localpath\\examplefile.txt.
    // Jika Anda hanya menentukan nama file lokal (misalnya, examplefile.txt) tanpa path lengkap, file akan diunggah dari path lokal yang sesuai dengan proyek program contoh.
    const localFilepath = 'D:\\localpath\\examplefile.txt'
    // Setel informasi checkpoint.
    let checkpoint;
    
    // Setel header permintaan.
    const headers = {
      // Tentukan kunci (misalnya, owner) dan nilai (misalnya, John) tag objek.
      'x-oss-tagging': 'owner=John&type=document',
    }
    
    
    async function setTag() {
      await client.multipartUpload(objectName, localFilepath, {
        checkponit,
        async progress(percentage, cpt) {
          checkpoint = cpt;
        },
        headers
      });
      const tag = await client.getObjectTagging(objectName);
      console.log(tag);
    }
    
    setTag()

Tambahkan atau ubah tag objek untuk objek yang sudah ada

Jika Anda tidak menambahkan tag objek saat mengunggah objek, atau jika tag yang ada tidak memenuhi kebutuhan Anda, Anda dapat menambahkan atau mengubah tag objek tersebut setelah diunggah.

Kode berikut menunjukkan cara menambahkan atau mengubah tag objek untuk objek yang sudah ada.

const OSS = require('ali-oss')

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, setel region ke oss-cn-hangzhou untuk China (Hangzhou).
  region: 'yourregion',
  // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

// Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contohnya, exampledir/exampleobject.txt.
const objectName = 'exampledir/exampleobject.txt'
// Tentukan kunci (misalnya, owner) dan nilai (misalnya, John) tag objek.
const tag = { owner: 'John', type: 'document' };

async function putObjectTagging(objectName, tag) {
  try {
    const result = await client.putObjectTagging(objectName, tag);
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

putObjectTagging(objectName, tag)

Tambahkan atau ubah tag objek untuk versi objek tertentu

Dalam bucket yang mengaktifkan Pengendalian versi, Anda dapat menambahkan atau mengubah tag objek untuk versi tertentu dengan menentukan ID versinya.

Kode berikut menunjukkan cara menambahkan atau mengubah tag objek untuk versi tertentu dari suatu objek.

Catatan

Untuk informasi selengkapnya tentang cara memperoleh ID versi, lihat List objects (Node.js SDK).

const OSS = require('ali-oss')

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, setel region ke oss-cn-hangzhou untuk China (Hangzhou).
  region: 'yourregion',
  // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

// Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contohnya, exampledir/exampleobject.txt.
const objectName = 'exampledir/exampleobject.txt'
// Tentukan kunci (misalnya, owner) dan nilai (misalnya, John) tag objek.
const tag = { owner: 'John', type: 'document' };
// Tentukan ID versi objek.
const versionId='CAEQIRiBgMDqvPqA3BciIDJhMjE4MWZkN2ViYTRmYzJhZjkxMzk2YWM2NjJk****'

async function putObjectTagging(objectName, tag) {
  try {
    const options = {
      versionId
    };
    const result = await client.putObjectTagging(objectName, tag, options);
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

putObjectTagging(objectName, tag)

Setel tag objek saat menyalin objek

Saat menyalin objek, Anda dapat menentukan cara menyetel tag untuk objek tujuan. Nilai yang valid adalah:

  • Copy (default): Menyalin tag dari objek sumber ke objek tujuan.

  • Replace: Mengabaikan tag objek sumber dan menerapkan tag yang ditentukan dalam permintaan ke objek tujuan.

Contoh berikut menunjukkan cara menyetel tag objek saat menyalin objek. Salinan simple digunakan untuk objek berukuran kurang dari 1 GB, sedangkan salinan multi-bagian digunakan untuk objek berukuran lebih dari 1 GB.

  • Tambahkan tag objek saat salinan simple

    Kode berikut menunjukkan cara menyetel tag objek saat melakukan salinan simple untuk objek berukuran kurang dari 1 GB.

    const OSS = require('ali-oss')
    
    const client = new OSS({
      // Setel region ke wilayah tempat bucket berada. Misalnya, setel region ke oss-cn-hangzhou untuk China (Hangzhou).
      region: 'yourregion',
      // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Tentukan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Tentukan path lengkap objek sumber. Path lengkap tidak boleh mengandung nama bucket. Contohnya, srcexampledir/exampleobject.txt.
    const sourceObjectName = 'srcexampledir/exampleobject.txt';
    // Tentukan path lengkap objek tujuan. Path lengkap tidak boleh mengandung nama bucket. Contohnya, destexampledir/exampleobject.txt.
    const targetObjectName = 'destexampledir/exampleobject.txt';
    
    // Setel header permintaan.
    const headers = {
      // Tentukan kunci (misalnya, owner) dan nilai (misalnya, John) tag objek.
      'x-oss-tagging': 'owner=John&type=document',
      // Tentukan cara menyetel tag untuk objek tujuan. Nilai yang valid: Copy dan Replace. Nilai default adalah Copy. Copy berarti tag objek sumber disalin ke objek tujuan. Replace berarti tag objek sumber diabaikan dan tag yang ditentukan dalam permintaan digunakan.
      'x-oss-tagging-directive': 'Replace' 
    }
    
    async function setTag() {
      const result = await client.copy(targetObjectName, sourceObjectName, {
        headers
      });
      const tag = await client.getObjectTagging(targetObjectName)
      console.log(tag)
    }
    
    setTag()
  • Tambahkan tag objek saat salinan multi-bagian

    Kode berikut menunjukkan cara menyetel tag objek saat melakukan salinan multi-bagian untuk objek berukuran lebih dari 1 GB.

    const OSS = require('ali-oss')
    
    const client = new OSS({
      // Setel region ke wilayah tempat bucket berada. Misalnya, setel region ke oss-cn-hangzhou untuk China (Hangzhou).
      region: 'yourregion',
      // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Tentukan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Tentukan path lengkap objek sumber. Path lengkap tidak boleh mengandung nama bucket. Contohnya, srcexampledir/exampleobject.txt.
    const sourceObjectName = 'srcexampledir/exampleobject.txt'
    // Tentukan path lengkap objek tujuan. Path lengkap tidak boleh mengandung nama bucket. Contohnya, destexampledir/exampleobject.txt.
    const targetObjectName = 'destexampledir/exampleobject.txt'
    
    // Setel header permintaan.
    const headers = {
      // Tentukan kunci (misalnya, owner) dan nilai (misalnya, John) tag objek.
      'x-oss-tagging': 'owner=John&type=document',
    }
    
    async function setTag() {
      await client.multipartUploadCopy(targetObjectName, {
        sourceKey: sourceObjectName,
        sourceBucketName: 'examplebucket'
      }, {
        // Setel ukuran bagian dalam byte. Ukuran bagian minimum adalah 100 KB. Ukuran bagian terakhir tidak dibatasi.
        partSize: 256 * 1024,
        headers
      });
      const tag = await client.getObjectTagging(targetObjectName)
      console.log(tag)
    }
    
    setTag()

Setel tag untuk tautan simbolik

Kode berikut menunjukkan cara menyetel tag untuk tautan simbolik.

const OSS = require('ali-oss')

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, setel region ke oss-cn-hangzhou untuk China (Hangzhou).
  region: 'yourregion',
  // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

// Tentukan path lengkap tautan simbolik. Contohnya, shortcut/myobject.txt.
const symLink = "shortcut/myobject.txt";
// Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contohnya, exampledir/exampleobject.txt.
const targetObjectName = 'exampledir/exampleobject.txt'
                
// Setel header permintaan.
const headers = {
  // Tentukan kunci (misalnya, owner) dan nilai (misalnya, John) tag objek.
  'x-oss-tagging': 'owner=John&type=document',
}

async function setTag() {
  await client.putSymlink(symLink, targetObjectName, {
    storageClass: 'IA',
    meta: {
      uid: '1',
      slus: 'test.html'
    },
    headers
  });
  const tag = await client.getObjectTagging(targetObjectName)
  console.log(tag)
}

setTag()

Referensi

  • Untuk kode contoh lengkap tentang penyetelan tag objek, lihat GitHub.

  • Untuk informasi selengkapnya tentang Operasi API untuk menyetel tag objek, lihat PutObjectTagging.