Bucket adalah wadah penyimpan objek. Topik ini menjelaskan cara memperoleh informasi mengenai sebuah bucket.
Perhatian
Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya dalam 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.
Instans OSSClient pada topik ini 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 memperoleh informasi mengenai sebuah bucket, Anda harus memiliki izin
oss:GetBucketInfo. Untuk informasi lebih lanjut, lihat Melampirkan kebijakan kustom ke RAM user.
Kode contoh
Kode berikut menunjukkan cara memperoleh informasi mengenai sebuah bucket, seperti wilayah dan tanggal pembuatannya.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.BucketInfo;
public class Demo {
public static void main(String[] args) throws Exception {
// Wilayah China (Hangzhou) digunakan dalam contoh ini. Tentukan titik akhir yang sebenarnya.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket. Misalnya, examplebucket.
String bucketName = "examplebucket";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
String region = "cn-hangzhou";
// Buat instans OSSClient.
// Saat instans OSSClient tidak lagi diperlukan, panggil metode shutdown untuk melepaskan sumber dayanya.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Informasi bucket mencakup wilayah (Region atau Location), tanggal pembuatan (CreationDate), dan pemilik (Owner).
// Tentukan nama bucket. Misalnya, examplebucket.
BucketInfo info = ossClient.getBucketInfo(bucketName);
// Dapatkan wilayah.
System.out.println(info.getBucket().getLocation());
// Dapatkan tanggal pembuatan.
System.out.println(info.getBucket().getCreationDate());
// Dapatkan informasi pemilik.
System.out.println(info.getBucket().getOwner());
// Dapatkan tipe pemulihan bencana.
System.out.println(info.getDataRedundancyType());
// Dapatkan status pelacakan akses. Operasi ini hanya didukung pada OSS SDK for Java versi 3.16.0 dan yang lebih baru.
System.out.println(info.getBucket().getAccessMonitor());
} 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 client mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "misalnya tidak dapat mengakses jaringan.");
System.out.println("Pesan Error:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}Referensi
Untuk informasi lebih lanjut mengenai operasi API tersebut, lihat GetBucketInfo.