全部产品
Search
文档中心

Object Storage Service:Inisialisasi (Browser.js SDK)

更新时间:Dec 19, 2025

Client SDK OSS Browser.js mengelola sumber daya Object Storage Service (OSS), seperti bucket dan file. Untuk mengirim permintaan ke OSS, Anda harus menginisialisasi instance client dan dapat menyesuaikan konfigurasi default sesuai kebutuhan.

Prasyarat

SDK Browser.js harus diinstal. Untuk informasi selengkapnya, lihat Instalasi (Browser.js SDK).

Buat client baru

Signature V4 (Direkomendasikan)

Gunakan algoritma Signature V4 yang lebih aman. Saat menginisialisasi client dengan Signature V4, deklarasikan authorizationV4. Signature V4 didukung pada OSS Browser.js SDK versi 6.20.0 dan yang lebih baru.

Contoh berikut menunjukkan cara menggunakan Signature V4 saat inisialisasi dengan nama domain OSS. Untuk skenario lain, seperti inisialisasi dengan nama domain kustom, sesuaikan contoh tersebut sesuai kebutuhan.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <!--Impor file SDK.-->
    <script
      type="text/javascript"
      src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.20.0.min.js"
    ></script>
    <script type="text/javascript">
      const client = new OSS({
        // Tetapkan yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan yourRegion ke oss-cn-hangzhou.
        region: 'yourRegion',
	authorizationV4: true,
        // Pasangan AccessKey temporary (ID AccessKey dan Rahasia AccessKey) yang diperoleh dari Security Token Service (STS).
        accessKeyId: 'yourAccessKeyId',
        accessKeySecret: 'yourAccessKeySecret',
        // Token keamanan yang diperoleh dari STS.
        stsToken: 'yourSecurityToken',
        // Tentukan nama bucket. Misalnya, examplebucket.
        bucket: "examplebucket",
      });
    </script>
  </body>
</html>

Signature V1 (Tidak direkomendasikan)

Penting

Mulai 1 Maret 2025, algoritma Signature V1 OSS tidak lagi tersedia bagi pelanggan baru dengan UID baru. Mulai 1 September 2025, OSS tidak lagi memperbarui dan memelihara algoritma Signature V1, serta algoritma tersebut tidak lagi tersedia untuk bucket baru. Segera tingkatkan dari Signature V1 ke Signature V4 untuk mencegah dampak terhadap bisnis Anda.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <!--Impor file SDK.-->
    <script
      type="text/javascript"
      src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"
    ></script>
    <script type="text/javascript">
      const client = new OSS({
        // Tetapkan yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan yourRegion ke oss-cn-hangzhou.
        region: 'yourRegion',
        // Pasangan AccessKey temporary (ID AccessKey dan Rahasia AccessKey) yang diperoleh dari STS.
        accessKeyId: 'yourAccessKeyId',
        accessKeySecret: 'yourAccessKeySecret',
        // Token keamanan yang diperoleh dari STS.
        stsToken: 'yourSecurityToken',
        // Tentukan nama bucket. Misalnya, examplebucket.
        bucket: "examplebucket",
      });
    </script>
  </body>
</html>

Konfigurasikan client

Anda dapat menambahkan item konfigurasi sesuai kebutuhan saat menginisialisasi client. Misalnya, gunakan timeout untuk menentukan periode timeout permintaan dan stsToken untuk menentukan kredensial akses sementara. Untuk informasi selengkapnya mengenai item konfigurasi dan contoh yang didukung oleh Browser.js, lihat bagian berikut.

Deskripsi parameter options

  • accessKeyId {String}: ID AccessKey yang Anda peroleh dari Konsol Manajemen Alibaba Cloud.

  • accessKeySecret {String}: Rahasia AccessKey yang Anda peroleh dari Konsol Manajemen Alibaba Cloud.

  • [stsToken] {String}: Token Layanan Token Keamanan yang digunakan untuk otorisasi sementara.

  • [refreshSTSToken] {Function}: Fungsi yang secara otomatis memperbarui stsToken, accessKeyId, dan accessKeySecret ketika token STS kedaluwarsa. Fungsi ini harus mengembalikan objek yang berisi stsToken, accessKeyId, dan accessKeySecret.

  • [refreshSTSTokenInterval] {Number}: Interval penyegaran token Layanan Token Keamanan dalam milidetik. Nilai ini harus lebih kecil dari periode kedaluwarsa token STS. Nilai default adalah 300.000 milidetik (5 menit).

  • [bucket] {String}: Bucket default yang ingin Anda akses. Jika bucket tersebut belum ada, Anda dapat memanggil operasi putBucket() untuk membuatnya.

  • [endpoint] {String}: Nama domain spesifik wilayah OSS. Parameter ini memiliki prioritas lebih tinggi daripada parameter region. Anda dapat menetapkan parameter ini ke titik akhir publik, titik akhir internal dalam wilayah yang sama, atau nama domain yang dipercepat sesuai kebutuhan. Untuk informasi selengkapnya, lihat daftar titik akhir.

  • [region] {String}: Wilayah tempat bucket berada. Nilai default adalah oss-cn-hangzhou.

  • [internal] {Boolean}: Menentukan apakah akan mengakses OSS melalui jaringan internal Alibaba Cloud. Nilai default adalah false. Jika server Anda juga berjalan di Alibaba Cloud, tetapkan parameter ini ke true untuk mengurangi biaya transfer data.

  • [secure] {Boolean}: Menentukan apakah client OSS menggunakan protokol HTTPS (secure: true) atau HTTP (secure: false).

  • [timeout] {String|Number}: Periode timeout untuk semua operasi, dalam detik. Nilai default adalah 60.

  • [cname] {Boolean}: Menentukan apakah akan menggunakan nama domain kustom untuk mengakses OSS. Nilai default adalah false. Jika Anda menetapkan parameter ini ke true, Anda harus menentukan nama domain kustom di bidang endpoint.

  • [isRequestPay] {Boolean}: Menentukan apakah akan mengaktifkan fitur Requester Pays untuk bucket. Nilai default adalah false. Jika Anda menetapkan parameter ini ke true, header 'x-oss-request-payer': 'requester' dikirim ke server OSS.

  • [useFetch] {Boolean}: Parameter ini hanya berlaku di lingkungan browser. Nilai default adalah false. Jika Anda menetapkan parameter ini ke true, objek diunggah menggunakan metode fetch. Jika tidak, XMLHttpRequest yang digunakan.

  • [retryMax] {Number}: Jumlah maksimum percobaan ulang untuk permintaan yang gagal karena error jaringan atau timeout. Percobaan ulang tidak didukung untuk operasi putStream.

  • [authorizationV4] {Boolean}: Menentukan apakah akan menggunakan Signature V4. Nilai default adalah false.

Contoh

  • Penggunaan dasar

    const OSS = require('ali-oss');
    
    const store = new OSS({
      region: 'yourRegion',
      authorizationV4: true,
      accessKeyId: 'your access key',
      accessKeySecret: 'your access secret',
      stsToken: 'yourSecurityToken',
      bucket: 'your bucket name',
    });
  • Gunakan titik akhir yang dipercepat

    Catatan

    Titik akhir Akselerator Global: oss-accelerate.aliyuncs.com

    Titik akhir yang dipercepat untuk wilayah luar daratan Tiongkok: oss-accelerate-overseas.aliyuncs.com

    const OSS = require('ali-oss');
    
    const store = new OSS({
      region: 'yourRegion',
      authorizationV4: true,
      accessKeyId: 'your access key',
      accessKeySecret: 'your access secret',
      stsToken: 'yourSecurityToken',
      bucket: 'your bucket name',
      endpoint: 'oss-accelerate.aliyuncs.com',
    });
  • Gunakan metode akses kustom

    const OSS = require('ali-oss');
    
    const store = new OSS({
      region: 'yourRegion',
      authorizationV4: true,
      stsToken: 'yourSecurityToken',
      accessKeyId: 'your access key',
      accessKeySecret: 'your access secret',
      cname: true,
      endpoint: 'your custome domain',
    });
  • Akses menggunakan token STS

    const OSS = require('ali-oss');
    
    const store = new OSS({
      region: 'yourRegion',
      authorizationV4: true,
      accessKeyId: 'your STS key',
      accessKeySecret: 'your STS secret',
      stsToken: 'your STS token',
      refreshSTSToken: async () => {
        const info = await fetch('you sts server');
        return {
          accessKeyId: info.accessKeyId,
          accessKeySecret: info.accessKeySecret,
          stsToken: info.stsToken,
        };
      },
      refreshSTSTokenInterval: 300000,
    });
  • Coba ulang permintaan menggunakan stream

    for (let i = 0; i <= store.options.retryMax; i++) {
      try {
        const result = await store.putStream('<example-object>', fs.createReadStream('<example-path>'));
        console.log(result);
        break; // hentikan jika berhasil
      } catch (e) {
        console.log(e);
      }
    }
  • Gunakan Signature V4 dan opsi tambahan additionalHeaders

    const OSS = require('ali-oss');
    
    const store = new OSS({
      accessKeyId: 'your access key',
      accessKeySecret: 'your access secret',
      bucket: 'your bucket name',
      region: 'oss-cn-hangzhou',
      authorizationV4: true ,
      stsToken: 'yourSecurityToken',
    });
    
    try {
      const bucketInfo = await store.getBucketInfo('your bucket name');
      console.log(bucketInfo);
    } catch (e) {
      console.log(e);
    }
    
    try {
      const putObjectResult = await store.put('your bucket name', 'your object name', {
        headers: {
          // Header permintaan ini
          header1: 'value1',
          header2: 'value2',
        },
        // Kunci header permintaan yang disertakan dalam perhitungan tanda tangan V4. Pastikan header tambahan ini termasuk dalam header permintaan.
        additionalHeaders: ['additional header1', 'additional header2'],
      });
      console.log(putObjectResult);
    } catch (e) {
      console.log(e);
    }