Bucket adalah wadah yang digunakan untuk menyimpan objek. Semua objek harus disimpan dalam sebuah bucket, yang ditampilkan secara alfabetis. Anda dapat mendaftar bucket yang dimiliki oleh Akun Alibaba Cloud Anda di semua Wilayah dan memfilternya berdasarkan kondisi tertentu.
Catatan penggunaan
Sebelum menjalankan kode contoh dalam topik ini, Anda harus membuat instans OSSClient dengan metode seperti menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Inisialisasi (Android SDK).
Daftar semua bucket
Kode berikut menunjukkan cara mendaftar semua bucket di semua Wilayah dalam Akun Alibaba Cloud saat ini.
// Daftar semua bucket di semua Wilayah akun Anda.
ListBucketsRequest request = new ListBucketsRequest();
ossClient.asyncListBuckets(request, new OSSCompletedCallback<ListBucketsRequest, ListBucketsResult>() {
@Override
public void onSuccess(ListBucketsRequest request, ListBucketsResult result) {
List<OSSBucketSummary> buckets = result.getBuckets();
for (int i = 0; i < buckets.size(); i++) {
Log.i("info", "name: " + buckets.get(i).name + " "
+ "location: " + buckets.get(i).location);
}
}
@Override
public void onFailure(ListBucketsRequest request, ClientException clientException, ServiceException serviceException) {
// Permintaan gagal.
if (clientException != null) {
// Terjadi exception pada client, misalnya exception jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Terjadi exception pada server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});Daftar bucket dengan awalan tertentu
Kode berikut menunjukkan cara mendaftar bucket yang memiliki awalan "example" di semua Wilayah dalam Akun Alibaba Cloud saat ini.
Awalan digunakan untuk pencocokan fuzzy. Kueri akan mengembalikan semua bucket yang namanya diawali dengan awalan yang ditentukan. Misalnya, jika Anda menetapkan awalan menjadi `a`, bucket seperti `abucket` dan `abcbucket` akan dikembalikan.
// Tentukan URL server aplikasi STS. Contohnya, http://example.com.
String stsServer = "http://example.com";
// Gunakan OSSAuthCredentialsProvider untuk memperbarui token secara otomatis saat kedaluwarsa.
OSSCredentialProvider credentialProvider = new OSSAuthCredentialsProvider(stsServer);
ClientConfiguration config = new ClientConfiguration();
OSSClient ossClient = new OSSClient(getApplicationContext(), credentialProvider, config);
ListBucketsRequest request = new ListBucketsRequest();
// Daftar bucket dengan awalan 'example' di semua Wilayah akun Anda.
request.setPrefix("example");
ossClient.asyncListBuckets(request, new OSSCompletedCallback<ListBucketsRequest, ListBucketsResult>() {
@Override
public void onSuccess(ListBucketsRequest request, ListBucketsResult result) {
List<OSSBucketSummary> buckets = result.getBuckets();
for (int i = 0; i < buckets.size(); i++) {
Log.i("i", "name: " + buckets.get(i).name + " "
+ "location: " + buckets.get(i).location);
}
}
@Override
public void onFailure(ListBucketsRequest request, ClientException clientException, ServiceException serviceException) {
// Permintaan gagal.
if (clientException != null) {
// Terjadi exception pada client, misalnya exception jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Terjadi exception pada server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});Daftar bucket setelah penanda tertentu
Kode berikut menunjukkan cara mendaftar bucket yang namanya secara alfabetis berada setelah "examplebucket" di semua Wilayah dalam Akun Alibaba Cloud saat ini.
Kueri berbasis awalan mengembalikan semua bucket yang namanya diawali dengan awalan yang ditentukan. Misalnya, kueri dengan awalan `a` mengembalikan bucket seperti `abucket` dan `abcbucket`.
Hasil kueri mencakup bucket pertama yang diperoleh dari pencocokan fuzzy beserta semua bucket berikutnya.
// Tentukan URL server aplikasi STS. Contohnya, http://example.com.
String stsServer = "http://example.com";
// Gunakan OSSAuthCredentialsProvider untuk memperbarui token secara otomatis saat kedaluwarsa.
OSSCredentialProvider credentialProvider = new OSSAuthCredentialsProvider(stsServer);
ClientConfiguration config = new ClientConfiguration();
OSSClient ossClient = new OSSClient(getApplicationContext(), credentialProvider, config);
ListBucketsRequest request = new ListBucketsRequest();
// Daftar bucket yang berada setelah 'examplebucket' dalam urutan alfabetis di semua Wilayah akun Anda.
request.setMarker("examplebucket");
ossClient.asyncListBuckets(request, new OSSCompletedCallback<ListBucketsRequest, ListBucketsResult>() {
@Override
public void onSuccess(ListBucketsRequest request, ListBucketsResult result) {
List<OSSBucketSummary> buckets = result.getBuckets();
for (int i = 0; i < buckets.size(); i++) {
Log.i("i", "name: " + buckets.get(i).name + " "
+ "location: " + buckets.get(i).location);
}
}
@Override
public void onFailure(ListBucketsRequest request, ClientException clientException, ServiceException serviceException) {
// Permintaan gagal.
if (clientException != null) {
// Terjadi exception pada client, misalnya exception jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Terjadi exception pada server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});Daftar jumlah bucket tertentu
Kode berikut menunjukkan cara mendaftar bucket di semua Wilayah dalam Akun Alibaba Cloud saat ini dengan membatasi jumlah bucket yang dikembalikan maksimal sebanyak 500.
// Tentukan URL server aplikasi STS. Contohnya, http://example.com.
String stsServer = "http://example.com";
// Gunakan OSSAuthCredentialsProvider untuk memperbarui token secara otomatis saat kedaluwarsa.
OSSCredentialProvider credentialProvider = new OSSAuthCredentialsProvider(stsServer);
ClientConfiguration config = new ClientConfiguration();
OSSClient ossClient = new OSSClient(getApplicationContext(), credentialProvider, config);
ListBucketsRequest request = new ListBucketsRequest();
// Daftar bucket di semua Wilayah akun Anda dan batasi jumlah bucket yang dikembalikan menjadi 500. Nilai default adalah 100. Nilai maksimum adalah 1000.
request.setMaxKeys(500);
ossClient.asyncListBuckets(request, new OSSCompletedCallback<ListBucketsRequest, ListBucketsResult>() {
@Override
public void onSuccess(ListBucketsRequest request, ListBucketsResult result) {
List<OSSBucketSummary> buckets = result.getBuckets();
for (int i = 0; i < buckets.size(); i++) {
Log.i("i", "name: " + buckets.get(i).name + " "
+ "location: " + buckets.get(i).location);
}
}
@Override
public void onFailure(ListBucketsRequest request, ClientException clientException, ServiceException serviceException) {
// Permintaan gagal.
if (clientException != null) {
// Terjadi exception pada client, misalnya exception jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Terjadi exception pada server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});Referensi
Untuk kode contoh lengkap, lihat contoh di GitHub.
Untuk referensi API operasi ini, lihat ListBuckets (GetService).