全部产品
Search
文档中心

Object Storage Service:Upload sederhana (Harmony SDK)

更新时间:Nov 30, 2025

Topik ini menjelaskan metode upload sederhana, yaitu cara langsung untuk mengunggah satu file ke OSS dengan cepat.

Perhatian

Untuk informasi selengkapnya mengenai wilayah dan titik akhir yang didukung OSS, lihat Regions and endpoints.

Izin

Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui RAM Policy atau Bucket policies.

API

Action

Definisi

PutObject

oss:PutObject

Mengunggah objek.

oss:PutObjectTagging

Saat mengunggah objek, jika Anda menentukan tag objek melalui x-oss-tagging, izin ini diperlukan.

kms:GenerateDataKey

Saat mengunggah objek, jika metadata objek berisi X-Oss-Server-Side-Encryption: KMS, kedua izin ini diperlukan.

kms:Decrypt

Kode contoh

Anda dapat menggunakan kode berikut untuk mengunggah string sebagai file ke bucket tujuan.

Penting

Jika Anda mengunggah objek ke bucket yang sudah berisi objek dengan nama yang sama, objek baru akan menimpa objek yang ada jika Anda memiliki izin akses yang diperlukan.

import Client, { RequestError } from '@aliyun/oss';

// Buat instans klien OSS.
const client = new Client({
  // Ganti dengan Access Key ID dari kredensial akses sementara STS.
  accessKeyId: 'yourAccessKeyId',
  // Ganti dengan Access Key Secret dari kredensial akses sementara STS.
  accessKeySecret: 'yourAccessKeySecret',
  // Ganti dengan token keamanan dari kredensial akses sementara STS.
  securityToken: 'yourSecurityToken',
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region menjadi oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
});

const bucket = 'yourBucketName'; // Ganti dengan nama bucket yang ingin Anda gunakan.

const key = 'yourObjectName'; // Ganti dengan nama objek (file) yang ingin Anda unggah.

const putObject = async () => {
  try {
    // Panggil metode putObject untuk mengunggah data ke bucket dan key yang ditentukan, dengan melewatkan data sebagai parameter.
    const res = await client.putObject({
      bucket, // Nama bucket.
      key, // Nama objek (file).
      data: 'hello world' // Data yang akan diunggah. Dalam kasus ini, berupa string sederhana.
    });

    // Cetak hasil pengunggahan.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian yang terjadi selama permintaan.
    if (err instanceof RequestError) {
      // Jika kesalahan merupakan tipe yang dikenal, cetak kode kesalahan, pesan, ID permintaan, kode status, kode EC, dan informasi lainnya.
      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 {
      // Cetak jenis kesalahan lain yang tidak dikenal.
      console.log('unknown error: ', err);
    }
  }
}

// Panggil fungsi putObject untuk melakukan operasi pengunggahan.
putObject();

Skenario

Unggah file lokal

Anda dapat menggunakan kode berikut untuk mengunggah file lokal ke bucket tujuan.

import Client, { RequestError } from '@aliyun/oss';
import { fileIo as fs } from '@kit.CoreFileKit';

// Buat instans klien OSS.
const client = new Client({
  // Ganti dengan Access Key ID dari kredensial akses sementara STS.
  accessKeyId: 'yourAccessKeyId',
  // Ganti dengan Access Key Secret dari kredensial akses sementara STS.
  accessKeySecret: 'yourAccessKeySecret',
  // Ganti dengan token keamanan dari kredensial akses sementara STS.
  securityToken: 'yourSecurityToken',
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region menjadi oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
});

// Tentukan nama bucket yang akan dioperasikan. Ganti dengan nama bucket aktual Anda.
const bucket = 'yourBucketName';
// Tentukan nama objek (file) yang akan diunggah. Ganti dengan nama objek aktual Anda.
const key = 'yourObjectName';

/**
 * Unggah objek ke OSS dari path file.
 * Gunakan metode putObject untuk mengunggah file lokal ke bucket dan key yang ditentukan.
 */
const putObjectByFile = async () => {
  // Buka file lokal untuk dibaca.
  const file = await fs.open('yourFilePath', fs.OpenMode.READ_ONLY); // Ganti dengan path file aktual.

  try {
    // Panggil metode putObject untuk mengunggah file ke bucket dan key yang ditentukan.
    const res = await client.putObject({
      bucket, // Nama bucket.
      key,    // Nama objek (file).
      data: file, // Data file yang akan diunggah.
    });

    // Cetak hasil pengunggahan.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian yang terjadi selama permintaan.
    if (err instanceof RequestError) {
      // Jika kesalahan merupakan tipe yang dikenal, cetak kode kesalahan, pesan, ID permintaan, kode status HTTP, kode EC, dan informasi lainnya.
      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); // Kode kesalahan
    } else {
      // Cetak jenis kesalahan lain yang tidak dikenal.
      console.log('unknown error: ', err);
    }
  } finally {
    // Pastikan untuk menutup file setelah operasi selesai.
    await fs.close(file);
  }
};

// Panggil fungsi putObjectByFile untuk melakukan operasi pengunggahan file.
putObjectByFile();

Unggah file dan tentukan kelas penyimpanannya

Anda dapat menggunakan kode berikut untuk mengunggah file ke bucket tujuan dan menentukan kelas penyimpanannya.

import Client, { EStorageClass, RequestError } from '@aliyun/oss';

// Buat instans klien OSS.
const client = new Client({
  // Ganti dengan Access Key ID dari kredensial akses sementara STS.
  accessKeyId: 'yourAccessKeyId',
  // Ganti dengan Access Key Secret dari kredensial akses sementara STS.
  accessKeySecret: 'yourAccessKeySecret',
  // Ganti dengan token keamanan dari kredensial akses sementara STS.
  securityToken: 'yourSecurityToken',
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region menjadi oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
});

// Tentukan nama bucket yang akan dioperasikan. Ganti dengan nama bucket aktual Anda.
const bucket = 'yourBucketName';
// Tentukan nama objek (file) yang akan diunggah. Ganti dengan nama objek aktual Anda.
const key = 'yourObjectName';

/**
 * Unggah objek dan tentukan kelas penyimpanannya.
 * Gunakan metode putObject untuk mengunggah data ke bucket dan key yang ditentukan, serta atur kelas penyimpanan menjadi ARCHIVE.
 */
const putObjectWithStorageClass = async () => {
  try {
    // Panggil metode putObject untuk mengunggah data dan tentukan kelas penyimpanan sebagai ARCHIVE.
    const res = await client.putObject({
      bucket, // Nama bucket.
      key,    // Nama objek (file).
      data: 'hello world', // Data yang akan diunggah. Dalam kasus ini, berupa string sederhana.
      storageClass: EStorageClass.ARCHIVE, // Tentukan kelas penyimpanan sebagai ARCHIVE.
    });

    // Cetak hasil pengunggahan.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian yang terjadi selama permintaan.
    if (err instanceof RequestError) {
      // Jika kesalahan merupakan tipe yang dikenal, cetak kode kesalahan, pesan, ID permintaan, kode status HTTP, kode EC, dan informasi lainnya.
      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); // Kode kesalahan
    } else {
      // Cetak jenis kesalahan lain yang tidak dikenal.
      console.log('unknown error: ', err);
    }
  }
};

// Panggil fungsi putObjectWithStorageClass untuk melakukan operasi pengunggahan.
putObjectWithStorageClass();

Unggah file dan tentukan izin aksesnya

Anda dapat menggunakan kode berikut untuk mengunggah file ke bucket tujuan dan menentukan izin aksesnya.

import Client, { EObjectAcl, RequestError } from '@aliyun/oss';

// Buat instans klien OSS.
const client = new Client({
  // Ganti dengan Access Key ID dari kredensial akses sementara STS.
  accessKeyId: 'yourAccessKeyId',
  // Ganti dengan Access Key Secret dari kredensial akses sementara STS.
  accessKeySecret: 'yourAccessKeySecret',
  // Ganti dengan token keamanan dari kredensial akses sementara STS.
  securityToken: 'yourSecurityToken',
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region menjadi oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
});

// Tentukan nama bucket yang akan dioperasikan. Ganti dengan nama bucket aktual Anda.
const bucket = 'yourBucketName';
// Tentukan nama objek (file) yang akan diunggah. Ganti dengan nama objek aktual Anda.
const key = 'yourObjectName';

/**
 * Unggah objek dan atur izin aksesnya.
 * Gunakan metode putObject untuk mengunggah data ke bucket dan key yang ditentukan, serta atur izin akses objek menjadi PRIVATE.
 */
const putObjectWithObjectAcl = async () => {
  try {
    // Panggil metode putObject untuk mengunggah data dan atur izin akses objek menjadi PRIVATE.
    const res = await client.putObject({
      bucket, // Nama bucket.
      key,    // Nama objek (file).
      data: 'hello world', // Data yang akan diunggah. Dalam kasus ini, berupa string sederhana.
      objectAcl: EObjectAcl.PRIVATE, // Atur izin akses objek menjadi PRIVATE.
    });

    // Cetak hasil pengunggahan.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian yang terjadi selama permintaan.
    if (err instanceof RequestError) {
      // Jika kesalahan merupakan tipe yang dikenal, cetak kode kesalahan, pesan, ID permintaan, kode status HTTP, kode EC, dan informasi lainnya.
      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); // Kode kesalahan
    } else {
      // Cetak jenis kesalahan lain yang tidak dikenal.
      console.log('unknown error: ', err);
    }
  }
};

// Panggil fungsi putObjectWithObjectAcl untuk melakukan operasi pengunggahan.
putObjectWithObjectAcl();