全部产品
Search
文档中心

Object Storage Service:Berbagi sumber daya lintas asal (CORS) (Node.js SDK)

更新时间:Nov 30, 2025

Berbagi sumber daya lintas asal (Cross-Origin Resource Sharing/CORS) memungkinkan aplikasi web mengakses resource dari domain berbeda. OSS menyediakan operasi API untuk mengelola izin akses lintas domain melalui CORS.

Atur aturan CORS

Kode berikut mengatur aturan CORS untuk sebuah bucket:

const OSS = require('ali-oss');

const client = new OSS({
  // Setel yourRegion 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 contoh 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,
  // Tentukan nama bucket.
  bucket: 'yourBucket'
});

const rules = [{
        // Tentukan origin yang diizinkan untuk permintaan lintas asal. Karakter wildcard asterisk (*) didukung, yang mengizinkan semua domain sumber.
        allowedOrigin: 'http://example.com',
        // Tentukan metode yang diizinkan untuk permintaan lintas asal. Metode yang didukung meliputi GET, PUT, DELETE, POST, dan HEAD.
        allowedMethod: 'GET',
        // Tentukan header respons yang diizinkan untuk permintaan lintas asal. Setel nilai ini ke karakter wildcard asterisk (*) kecuali Anda memiliki persyaratan khusus.
        allowedHeader: '*',
        // Tentukan header respons yang dapat diakses pengguna dari aplikasi, seperti objek JavaScript XMLHttpRequest. Karakter wildcard asterisk (*) tidak diizinkan.
        exposeHeader: 'Content-Length',
        // Tentukan durasi cache, dalam detik, untuk hasil permintaan preflight (OPTIONS) terhadap resource tertentu.
        maxAgeSeconds: '30'
  },
];
// Tetapkan maksimal 10 aturan CORS. Jika Anda mengonfigurasi aturan yang sama dengan aturan yang sudah ada, aturan yang ada akan ditimpa.
client.putBucketCORS("yourBucket", rules).then((r) => {
  console.log(r);
});           

Ambil aturan CORS

Kode berikut mengambil aturan CORS untuk sebuah bucket:

const OSS = require("ali-oss");
const assert = require("assert");

const client = new OSS({
  // Setel yourRegion 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 contoh 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,
  // Tentukan nama bucket.
  bucket: "yourBucket",
});

// Tentukan nama bucket.
client.getBucketCORS("yourBucket").then((r) => {
  assert.equal(r.res.status, 200);
  assert.deepEqual(r.rules, [
    {
      allowedOrigin: "http://example.com",
      allowedMethod: "GET",
      allowedHeader: "*",
      exposeHeader: "Content-Length",
      maxAgeSeconds: "30",
    },
  ]);
});

Menghapus aturan CORS

Kode berikut menghapus semua aturan CORS untuk sebuah bucket:

const OSS = require('ali-oss');

const client = new OSS({
  // Setel yourRegion 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 contoh 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,
  // Tentukan nama bucket.
  bucket: "yourBucket",
});

// Tentukan nama bucket.
client.deleteBucketCORS('yourBucket').then((res) => {
  console.log(res);
}).catch(e => {
  console.log(e)
})

Referensi

  • Untuk contoh kode lengkap mengenai berbagi sumber daya lintas asal, lihat contoh di GitHub.

  • Untuk informasi selengkapnya mengenai operasi API untuk menetapkan aturan CORS, lihat PutBucketCors.

  • Untuk informasi selengkapnya mengenai operasi API untuk mengambil aturan CORS, lihat GetBucketCors.

  • Untuk informasi selengkapnya mengenai operasi API untuk menghapus aturan CORS, lihat DeleteBucketCors.