全部产品
Search
文档中心

Object Storage Service:Memulai dengan OSS SDK

更新时间:Nov 29, 2025

Layanan Penyimpanan Objek (OSS) SDK memungkinkan Anda mengintegrasikan OSS ke dalam aplikasi untuk manajemen penyimpanan yang efisien. Panduan ini menggunakan OSS SDK untuk Java guna memandu Anda melalui alur kerja lengkap: membuat bucket, mengunggah, mengunduh, dan menampilkan daftar file, lalu menghapus file dan bucket tersebut.

Prasyarat

Konfigurasikan variabel lingkungan

  1. Buat pasangan Kunci Akses (AccessKey pair) untuk Pengguna Resource Access Management (RAM) yang memiliki izin akses penuh ke OSS.

    Buat pasangan Kunci Akses menggunakan ROS

    Anda dapat dengan cepat membuat pasangan Kunci Akses untuk Pengguna RAM yang memiliki izin akses penuh ke OSS menggunakan skrip Resource Orchestration Service (ROS). Untuk melakukannya, buka wizard for template-based stack creation, pilih I confirm that Alibaba Cloud ROS may create RAM resources pada bagian Security Confirmation, lalu klik Create.

    1.png

    Setelah pasangan Kunci Akses dibuat, salin pasangan tersebut dari tab Outputs.

    image

  2. Konfigurasikan variabel lingkungan untuk pasangan Kunci Akses tersebut.

    Linux

    1. Jalankan perintah berikut pada CLI untuk menambahkan konfigurasi variabel lingkungan ke file ~/.bashrc:

      echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc
      echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc
      1. Jalankan perintah berikut untuk menerapkan perubahan:

        source ~/.bashrc
      2. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:

        echo $OSS_ACCESS_KEY_ID
        echo $OSS_ACCESS_KEY_SECRET

    macOS

    1. Jalankan perintah berikut di terminal untuk melihat jenis shell default:

      echo $SHELL
    2. Konfigurasikan variabel lingkungan berdasarkan jenis shell default.

      Zsh

      1. Jalankan perintah berikut untuk menambahkan konfigurasi variabel lingkungan ke file ~/.zshrc:

        echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc
        echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc
      2. Jalankan perintah berikut untuk menerapkan perubahan:

        source ~/.zshrc
      3. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:

        echo $OSS_ACCESS_KEY_ID
        echo $OSS_ACCESS_KEY_SECRET

      Bash

      1. Jalankan perintah berikut untuk menambahkan konfigurasi variabel lingkungan ke file ~/.bash_profile:

        echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile
        echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile
      2. Jalankan perintah berikut untuk menerapkan perubahan:

        source ~/.bash_profile
      3. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:

        echo $OSS_ACCESS_KEY_ID
        echo $OSS_ACCESS_KEY_SECRET

    Windows

    CMD

    1. Jalankan perintah berikut di CMD:

      setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
      setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
    2. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:

      echo %OSS_ACCESS_KEY_ID%
      echo %OSS_ACCESS_KEY_SECRET%

    PowerShell

    1. Jalankan perintah berikut di PowerShell:

      [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
      [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
    2. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan telah diterapkan:

      [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
      [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
  3. Setelah mengonfigurasi variabel lingkungan seperti dijelaskan di atas, harap restart atau refresh lingkungan kompilasi dan runtime Anda—termasuk IDE, antarmuka baris perintah, aplikasi desktop lainnya, serta layanan latar belakang—untuk memastikan variabel lingkungan sistem terbaru berhasil dimuat.

Instal OSS SDK untuk Java

  1. Instal Java 7 atau versi yang lebih baru.

    Anda dapat memeriksa versi Java dengan menjalankan perintah berikut:

    java -version

    Jika Java belum terinstal di lingkungan Anda atau versi Java Anda lebih lama dari V7, unduh versi yang kompatibel.

  2. Instal OSS SDK untuk Java.

    Catatan

    Pilih versi OSS SDK untuk Java yang sesuai dengan kebutuhan Anda. Kami merekomendasikan penggunaan OSS SDK untuk Java V3.17.4 terbaru agar kode contoh dalam bagian ini dapat berjalan dengan baik.

    Tambahkan dependensi ke proyek Maven Anda (disarankan)

    Untuk menggunakan OSS SDK untuk Java di Java 7 atau 8, tambahkan dependensi SDK yang sesuai ke file pom.xml. Pada contoh ini, dependensi untuk OSS SDK untuk Java V3.17.4 ditambahkan.

    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>3.17.4</version>
    </dependency>

    Jika Anda menggunakan Java 9 atau versi yang lebih baru, tambahkan dependensi terkait jaxb berikut selain dependensi OSS SDK:

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
    </dependency>
    <!-- no more than 2.3.3-->
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.3</version>
    </dependency>

    Impor file JAR ke proyek Eclipse

    Untuk menggunakan OSS SDK untuk Java V3.17.4, lakukan langkah-langkah berikut untuk mengimpor file JAR ke proyek Anda:

    1. Unduh OSS SDK for Java.zip.

    2. Ekstrak paket tersebut.

    3. Salin file aliyun-sdk-oss-3.17.4.jar dan semua file di direktori lib ke proyek Anda.

    4. Di Eclipse, pilih proyek Anda dan pilih Properties > Java Build Path > Add JARs dari menu klik kanan.

    5. Pilih semua file JAR yang telah Anda salin dan impor file-file tersebut ke Libraries.

    Impor file JAR ke proyek IntelliJ IDEA

    Untuk menggunakan OSS SDK untuk Java V3.17.4, lakukan langkah-langkah berikut untuk mengimpor file JAR ke proyek Anda:

    1. Unduh paket OSS SDK for Java.zip.

    2. Ekstrak paket tersebut.

    3. Salin file aliyun-sdk-oss-3.17.4.jar dan semua file JAR di direktori lib ke proyek Anda.

    4. Di IntelliJ IDEA, pilih proyek Anda dan pilih File > Project Structure > Modules > Dependencies > + > JARs or directories.

    5. Pilih semua file JAR yang telah Anda salin dan impor file-file tersebut ke External Libraries.

Contoh kode lengkap

Jalankan kode berikut untuk memverifikasi konfigurasi Anda dan melakukan operasi penyimpanan dasar. Contoh ini menggunakan wilayah Singapura agar kode dapat langsung dijalankan dengan titik akhir default.

Penting

Karena adanya perubahan kebijakan untuk meningkatkan kepatuhan dan keamanan, mulai 20 Maret 2025, pengguna OSS baru harus menggunakan nama domain kustom (CNAME) untuk melakukan operasi API data pada bucket OSS yang berlokasi di wilayah daratan Tiongkok. Titik akhir publik default dibatasi untuk operasi tersebut. Lihat pengumuman resmi untuk daftar lengkap operasi yang terdampak. Jika Anda mengakses data melalui HTTPS, Anda harus mengikat Sertifikat SSL yang valid ke domain kustom Anda. Hal ini wajib untuk akses Konsol OSS, karena konsol menerapkan HTTPS.

import java.io.*;
import java.util.Random;

import com.aliyun.oss.*;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.ObjectListing;
import com.aliyun.oss.model.OSSObjectSummary;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;

public class OssJavaSdkQuickStart {
    /** Menghasilkan nama bucket unik. */
    public static String generateUniqueBucketName(String prefix) {
        // Dapatkan timestamp saat ini.
        String timestamp = String.valueOf(System.currentTimeMillis());
        // Hasilkan bilangan acak antara 0 dan 9999.
        Random random = new Random();
        int randomNum = random.nextInt(10000); // Hasilkan bilangan acak antara 0 dan 9999.
        // Gabungkan bagian-bagian tersebut untuk membentuk nama bucket unik.
        return prefix + "-" + timestamp + "-" + randomNum;
    }

    public static void main(String[] args) throws com.aliyuncs.exceptions.ClientException {
        // Contoh ini menggunakan wilayah Singapura untuk mengilustrasikan proses. Tetapkan endpoint ke https://oss-ap-southeast-1.aliyuncs.com. Ganti dengan endpoint aktual.
        String endpoint = "https://oss-ap-southeast-1.aliyuncs.com";
        String bucketName = generateUniqueBucketName("demo");
        // Tentukan wilayah tempat bucket berada. Contoh ini menggunakan Singapura. Tetapkan wilayah ke ap-southeast-1.
        String region = "ap-southeast-1";

        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan.
        EnvironmentVariableCredentialsProvider credentialsProvider =
                CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();

        // Buat instans OSSClient.
        // Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepaskan resource.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        // Secara eksplisit nyatakan penggunaan algoritma signature V4.
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .region(region)
                .build();
        try {
            // 1. Buat bucket.
            ossClient.createBucket(bucketName);
            System.out.println("1. Bucket " + bucketName + " dibuat.");
            // 2. Unggah file.
            String objectName = "exampledir/exampleobject.txt";
            String content = "Hello OSS";
            ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(content.getBytes()));
            System.out.println("2. File " + objectName + " diunggah.");
            // 3. Unduh file.
            OSSObject ossObject = ossClient.getObject(bucketName, objectName);
            InputStream contentStream = ossObject.getObjectContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(contentStream));
            String line;
            System.out.println("3. Konten file yang diunduh:");
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            contentStream.close();
            // 4. Tampilkan daftar file.
            System.out.println("4. File dalam bucket:");
            ObjectListing objectListing = ossClient.listObjects(bucketName);
            for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
                System.out.println(" - " + objectSummary.getKey() + " (size = " + objectSummary.getSize() + ")");
            }
            // 5. Hapus file.
            ossClient.deleteObject(bucketName, objectName);
            System.out.println("5. File " + objectName + " dihapus.");
            // 6. Hapus bucket.
            ossClient.deleteBucket(bucketName);
            System.out.println("6. Bucket " + bucketName + " dihapus.");
        } catch (OSSException oe) {
            System.out.println("Terjadi OSSException, yang berarti permintaan Anda sampai ke OSS, "
                    + "tetapi ditolak dengan respons error karena suatu alasan.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException | IOException ce) {
            System.out.println("Terjadi ClientException, yang berarti klien mengalami "
                    + "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
                    + "seperti tidak dapat mengakses jaringan.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

Eksekusi yang berhasil akan menghasilkan log berkelanjutan seperti berikut:

1. Bucket demo-1731651903982-4074 dibuat.
2. File exampledir/exampleobject.txt diunggah.
3. Konten file yang diunduh:
Hello OSS
4. File dalam bucket:
 - exampledir/exampleobject.txt (size = 9)
5. File exampledir/exampleobject.txt dihapus.
6. Bucket demo-1731651903982-4074 dihapus.

Bahasa lainnya

SDK untuk bahasa lain juga tersedia untuk manajemen bucket dan operasi file.