全部产品
Search
文档中心

Object Storage Service:Perlindungan hotlink (Node.js SDK)

更新时间:Nov 30, 2025

Anda dapat menggunakan kit pengembangan perangkat lunak (SDK) Node.js untuk mengonfigurasi aturan akses Layanan Penyimpanan Objek (OSS) berdasarkan header permintaan Referer. Aturan ini memungkinkan Anda menetapkan daftar putih Referer, blacklist, serta menentukan apakah header Referer kosong diperbolehkan atau tidak, sehingga memblokir akses ke file OSS dari Referer tertentu. Dengan demikian, hotlinking dari situs web lain dapat dicegah dan biaya traffic yang tidak perlu dapat dihindari.

Catatan

  • Sebelum mengonfigurasi perlindungan hotlink, pastikan Anda memahami fitur ini terlebih dahulu. Untuk informasi selengkapnya, lihat Perlindungan hotlink.

  • Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk detail wilayah dan titik akhir yang didukung, lihat Wilayah dan titik akhir.

  • Pada topik ini, instans OSSClient dibuat dengan menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Inisialisasi (Node.js SDK).

  • Untuk menetapkan atau menghapus aturan perlindungan hotlink, Anda harus memiliki izin oss:PutBucketReferer. Untuk mengambil aturan perlindungan hotlink, Anda harus memiliki izin oss:GetBucketReferer. Untuk informasi selengkapnya, lihat Berikan kebijakan akses kustom kepada RAM user.

Tetapkan perlindungan hotlink

Kode berikut menunjukkan cara menetapkan aturan perlindungan hotlink.

const OSS = require('ali-oss')

const client = new OSS({
  // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, 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: 'examplebucket'
});

async function putBucketReferer () {
  try {
  const result = await client.putBucketReferer(client.options.bucket, true, [
  'http://www.aliyun.com',
  'https://www.aliyun.com'
  ]);
  console.log(result);
  } catch (e) {
    console.log(e);
  }
 }

putBucketReferer();

Ambil konfigurasi perlindungan hotlink

Kode berikut menunjukkan cara mengambil konfigurasi perlindungan hotlink.

const OSS = require('ali-oss')

const client = new OSS({
  // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah ditetapkan.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Ganti yourbucketname dengan nama bucket.
  bucket: 'yourbucketname'
});

async function getBucketReferer () {
  try {
    const result = await client.getBucketReferer('bucket-name');
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

getBucketReferer();

Hapus aturan perlindungan hotlink

Kode berikut menunjukkan cara menghapus aturan perlindungan hotlink.

const OSS = require('ali-oss')
const client = new OSS({
  // Atur yourregion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, 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,
  // Atur yourbucketname ke nama bucket.
  bucket: 'yourbucketname'
});

async function deleteBucketReferer () {
  try {
    const result = await client.deleteBucketReferer('bucket-name');
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

deleteBucketReferer();

Referensi

  • Untuk kode contoh lengkap yang digunakan untuk mengonfigurasi perlindungan hotlink, lihat GitHub.

  • Untuk informasi selengkapnya tentang operasi API yang digunakan untuk menetapkan aturan perlindungan hotlink, lihat PutBucketReferer.

  • Untuk informasi selengkapnya tentang operasi API yang digunakan untuk mengambil konfigurasi perlindungan hotlink, lihat GetBucketReferer.