Topik ini menjelaskan cara mengonfigurasi kelompok sumber daya untuk sebuah bucket dan mendapatkan ID kelompok sumber daya bucket tersebut.
Catatan
Pada topik ini, titik akhir publik wilayah China (Hangzhou) digunakan. 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.
Pada topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi kredensial akses.
Pada topik ini, instans OSSClient dibuat 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.
Untuk mengonfigurasi kelompok sumber daya untuk sebuah bucket, Anda harus memiliki izin
oss:PutBucketResourceGroup. Untuk mendapatkan ID kelompok sumber daya bucket, Anda harus memiliki izinoss:GetBucketResourceGroup. Untuk informasi lebih lanjut, lihat Berikan izin kustom kepada RAM user.
Konfigurasikan kelompok sumber daya bucket
Saat Anda mengonfigurasi kelompok sumber daya untuk sebuah bucket, bucket tersebut akan ditambahkan ke kelompok sumber daya default jika Anda tidak menentukan ID kelompok sumber daya. Jika Anda ingin menambahkan bucket ke kelompok sumber daya tertentu, pastikan kelompok sumber daya tersebut telah dibuat. Untuk informasi lebih lanjut, lihat Buat kelompok sumber daya.
Kode berikut menunjukkan cara mengonfigurasi kelompok sumber daya untuk 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.SetBucketResourceGroupRequest;
public class Demo {
public static void main(String[] args) throws Throwable {
// Titik akhir wilayah China (Hangzhou) digunakan sebagai contoh. Gantilah dengan Titik akhir yang sebenarnya.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tentukan ID kelompok sumber daya. Jika Anda tidak menentukan ID kelompok sumber daya, bucket akan ditambahkan ke kelompok sumber daya default.
String rgId = "rg-aekz****";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region menjadi cn-hangzhou.
String region = "cn-hangzhou";
// Buat instans OSSClient.
// Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepas 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 objek setBucketResourceGroupRequest.
SetBucketResourceGroupRequest setBucketResourceGroupRequest = new SetBucketResourceGroupRequest(bucketName,rgId);
// Konfigurasikan kelompok sumber daya bucket.
ossClient.setBucketResourceGroup(setBucketResourceGroupRequest);
} 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();
}
}
}
}Dapatkan ID kelompok sumber daya bucket
Kode berikut menunjukkan cara mendapatkan ID kelompok sumber daya bucket bernama examplebucket.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.model.GetBucketResourceGroupResult;
import com.aliyun.oss.common.comm.SignVersion;
public class Demo {
public static void main(String[] args) throws Throwable {
// Titik akhir wilayah China (Hangzhou) digunakan sebagai contoh. Gantilah dengan Titik akhir yang sebenarnya.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region menjadi cn-hangzhou.
String region = "cn-hangzhou";
// Buat instans OSSClient.
// Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepas 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 objek getBucketResourceGroupResult.
GetBucketResourceGroupResult getBucketResourceGroupResult = ossClient.getBucketResourceGroup(bucketName);
// Dapatkan ID kelompok sumber daya bucket.
String rgId = getBucketResourceGroupResult.getResourceGroupId();
System.out.println(rgId);
} 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 informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mengonfigurasi kelompok sumber daya bucket, lihat PutBucketResourceGroup.
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mendapatkan ID kelompok sumber daya bucket, lihat GetBucketResourceGroup.