Bucket adalah wadah untuk menyimpan objek. Semua objek harus disimpan dalam sebuah bucket. Topik ini menjelaskan cara membuat bucket.
Catatan penggunaan
Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk detail wilayah dan titik akhir yang didukung, lihat Wilayah dan titik akhir.
Kredensial akses pada topik ini diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi kredensial akses.
Topik ini membuat instans OSSClient menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Contoh konfigurasi untuk skenario umum.
Mulai pukul 10.00 (UTC+8) pada 13 Oktober 2025, OSS akan menerapkan penyesuaian bertahap di seluruh wilayah untuk mengaktifkan fitur Block Public Access secara default untuk bucket baru yang dibuat melalui API, OSS SDK, atau ossutil. Untuk detail waktu pasti penerapan penyesuaian di setiap wilayah, lihat [Pengumuman Resmi] Penyesuaian Konfigurasi Pemblokiran Akses Publik untuk Bucket Baru. Setelah Block Public Access diaktifkan, Anda tidak dapat mengonfigurasi izin akses publik, termasuk ACL publik (baca-publik dan baca/tulis publik) serta kebijakan bucket yang mengizinkan akses publik. Anda dapat menonaktifkan fitur ini setelah bucket dibuat jika bisnis Anda memerlukan akses publik.
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 Kebijakan RAM atau Kebijakan bucket.
API | Action | Definisi |
PutBucket |
| Membuat bucket. |
| Setelah membuat bucket, izin ini diperlukan untuk mengubah ACL bucket. |
Kode contoh
Kode berikut menunjukkan cara membuat bucket bernama examplebucket.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.*;
public class Demo {
public static void main(String[] args) throws Exception {
// Tetapkan yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
String endpoint = "yourEndpoint";
// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket.
String bucketName = "examplebucket";
// Tentukan ID kelompok sumber daya. Jika Anda tidak menentukan ID kelompok sumber daya, bucket akan masuk ke kelompok sumber daya default.
//String rsId = "rg-aek27tc****";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke cn-hangzhou.
String region = "cn-hangzhou";
// Buat instans OSSClient.
// Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepaskan sumber daya.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Buat bucket dan aktifkan fitur namespace hirarkis.
CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName).withHnsStatus(HnsStatus.Enabled);
// Untuk menentukan kelas penyimpanan, ACL, dan jenis redundansi data saat membuat bucket, lihat kode berikut.
// Contoh ini menunjukkan cara mengatur kelas penyimpanan bucket ke Standard.
createBucketRequest.setStorageClass(StorageClass.Standard);
// Jenis redundansi data default adalah LRS, yaitu DataRedundancyType.LRS.
createBucketRequest.setDataRedundancyType(DataRedundancyType.LRS);
// Atur ACL bucket ke public-read. ACL default adalah private.
createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
// Saat membuat bucket di wilayah yang mendukung kelompok sumber daya, Anda dapat mengonfigurasi kelompok sumber daya untuk bucket tersebut.
//createBucketRequest.setResourceGroupId(rsId);
ossClient.createBucket(createBucketRequest);
// Buat bucket.
ossClient.createBucket(createBucketRequest);
} catch (OSSException oe) {
System.out.println("Terjadi OSSException, yang berarti permintaan Anda berhasil mencapai OSS, "
+ "tetapi ditolak dengan tanggapan error karena suatu alasan.");
System.out.println("Pesan Error:" + oe.getErrorMessage());
System.out.println("Kode Error:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException 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("Pesan Error:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}Referensi
Untuk kode contoh lengkap yang digunakan untuk membuat bucket, lihat contoh GitHub.
Untuk informasi lebih lanjut tentang operasi API yang dapat dipanggil untuk membuat bucket, lihat PutBucket.