バケットは、Object Storage Service (OSS) に保存されているオブジェクトのコンテナです。 OSS内のすべてのオブジェクトはバケットに含まれています。 バケツはアルファベット順にリストされています。 すべてのリージョンで現在のAlibaba Cloudアカウントに属し、特定の条件を満たすバケットを一覧表示できます。
使用上の注意
このトピックで提供されるサンプルコードを実行する前に、OSSClientインスタンスを初期化する必要があります。 次のサンプルコードは、OSSClientインスタンスを初期化する方法の例を示しています。
// Security Token Service (STS) アプリケーションサーバーのURLを指定します。 例: http://example.com。
文字列stsServer = "http://example.com";
// OSSAuthCredentialsProviderを使用することを推奨します。 トークンは、有効期限が切れると自動的に更新されます。
OSSCredentialProvider credentialProvider=新しいOSSAuthCredentialsProvider(stsServer);
ClientConfiguration config = new ClientConfiguration();
OSSClient ossClient = new OSSClient(getApplicationContext(), credentialProvider, config);
Alibaba Cloudアカウント内のすべてのバケットを一覧表示する
次のサンプルコードは、現在のAlibaba Cloudアカウント内のすべてのリージョンのバケットを一覧表示する方法の例を示しています。
// STSアプリケーションサーバーのURLを指定します。 例: http://example.com。
文字列stsServer = "http://example.com";
// OSSAuthCredentialsProviderを使用することを推奨します。 トークンは、有効期限が切れると自動的に更新されます。
OSSCredentialProvider credentialProvider=新しいOSSAuthCredentialsProvider(stsServer);
ClientConfiguration config = new ClientConfiguration();
OSSClient ossClient = new OSSClient(getApplicationContext(), credentialProvider, config);
// すべてのリージョンの現在のAlibaba Cloudアカウントに属するすべてのバケットを一覧表示します。
ListBucketsRequest request = new ListBucketsRequest();
ossClient.asyncListBuckets(request, new OSSCompletedCallback<ListBucketsRequest, ListBucketsResult>() {
@オーバーライド
public void onSuccess(ListBucketsRequestリクエスト、ListBucketsResult結果) {
リスト <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);
}
}
@オーバーライド
public void onFailure(ListBucketsRequest request, ClientException clientException, ServiceException serviceException) {
// リクエスト例外を処理します。
if (clientException != null) {
// ネットワークエラーなどのクライアント側の例外を処理します。
clientException.printStackTrace();
}
if (serviceException != null) {
// サーバー側の例外を処理します。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
名前に特定のプレフィックスが含まれるバケットの一覧表示
次のサンプルコードは、現在のAlibaba Cloudアカウント内のすべてのリージョンで、名前にサンプルプレフィックスが含まれているバケットを一覧表示する方法の例を示しています。
プレフィックスベースのリストは、ファジーマッチングを使用し、指定されたプレフィックスで始まる名前のバケットを返します。 たとえば、指定されたプレフィックスがaの場合、abucketやabcbucketなど、アカウント内で名前が「a」で始まるすべてのバケットが返されます。
// STSアプリケーションサーバーのURLを指定します。 例: http://example.com。
文字列stsServer = "http://example.com";
// OSSAuthCredentialsProviderを使用することを推奨します。 トークンは、有効期限が切れると自動的に更新されます。
OSSCredentialProvider credentialProvider=新しいOSSAuthCredentialsProvider(stsServer);
ClientConfiguration config = new ClientConfiguration();
OSSClient ossClient = new OSSClient(getApplicationContext(), credentialProvider, config);
ListBucketsRequest request = new ListBucketsRequest();
// 現在のアカウント内で、名前がサンプルプレフィックスで始まるすべてのバケットを一覧表示します。
request.setPrefix("example");
ossClient.asyncListBuckets(request, new OSSCompletedCallback<ListBucketsRequest, ListBucketsResult>() {
@オーバーライド
public void onSuccess(ListBucketsRequestリクエスト、ListBucketsResult結果) {
リスト <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);
}
}
@オーバーライド
public void onFailure(ListBucketsRequest request, ClientException clientException, ServiceException serviceException) {
// リクエスト例外を処理します。
if (clientException != null) {
// ネットワークエラーなどのクライアント側の例外を処理します。
clientException.printStackTrace();
}
if (serviceException != null) {
// サーバー側の例外を処理します。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
マーカーで指定されたバケットの後に名前がアルファベット順であるバケットを一覧表示する
次のサンプルコードは、現在のAlibaba Cloudアカウント内のすべてのリージョンで、名前がexamplebucketという名前のバケットの後にアルファベット順になっているバケットを一覧表示する方法の例を示しています。
プレフィックスベースのリストは、ファジーマッチングを使用し、指定されたプレフィックスで始まる名前のバケットを返します。 たとえば、指定されたプレフィックスがaの場合、abucketやabcbucketなど、アカウント内で名前が「a」で始まるすべてのバケットが返されます。
// STSアプリケーションサーバーのURLを指定します。 例: http://example.com。
文字列stsServer = "http://example.com";
// OSSAuthCredentialsProviderを使用することを推奨します。 トークンは、有効期限が切れると自動的に更新されます。
OSSCredentialProvider credentialProvider=新しいOSSAuthCredentialsProvider(stsServer);
ClientConfiguration config = new ClientConfiguration();
OSSClient ossClient = new OSSClient(getApplicationContext(), credentialProvider, config);
ListBucketsRequest request = new ListBucketsRequest();
// 現在のアカウント内のexamplebucketの後に名前がアルファベット順にあるすべてのバケットを一覧表示します。
request.setMarker("examplebucket");
ossClient.asyncListBuckets(request, new OSSCompletedCallback<ListBucketsRequest, ListBucketsResult>() {
@オーバーライド
public void onSuccess(ListBucketsRequestリクエスト、ListBucketsResult結果) {
リスト <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);
}
}
@オーバーライド
public void onFailure(ListBucketsRequest request, ClientException clientException, ServiceException serviceException) {
// リクエスト例外を処理します。
if (clientException != null) {
// ネットワークエラーなどのクライアント側の例外を処理します。
clientException.printStackTrace();
}
if (serviceException != null) {
// サーバー側の例外を処理します。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
特定の数のバケットを一覧表示する
次のサンプルコードは、現在のAlibaba Cloudアカウント内のすべてのリージョンのバケットを一覧表示し、一覧表示できるバケットの最大数を500に設定する方法の例を示しています。
// STSアプリケーションサーバーのURLを指定します。 例: http://example.com。
文字列stsServer = "http://example.com";
// OSSAuthCredentialsProviderを使用することを推奨します。 トークンは、有効期限が切れると自動的に更新されます。
OSSCredentialProvider credentialProvider=新しいOSSAuthCredentialsProvider(stsServer);
ClientConfiguration config = new ClientConfiguration();
OSSClient ossClient = new OSSClient(getApplicationContext(), credentialProvider, config);
ListBucketsRequest request = new ListBucketsRequest();
// 現在のアカウントに属するすべてのバケットを一覧表示します。 リスト操作で返すことができるバケットの最大数を500に設定します。 デフォルト値は 100、最大値は 1000 です。
request.setMaxKeys(500);
ossClient.asyncListBuckets(request, new OSSCompletedCallback<ListBucketsRequest, ListBucketsResult>() {
@オーバーライド
public void onSuccess(ListBucketsRequestリクエスト、ListBucketsResult結果) {
リスト <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);
}
}
@オーバーライド
public void onFailure(ListBucketsRequest request, ClientException clientException, ServiceException serviceException) {
// リクエスト例外を処理します。
if (clientException != null) {
// ネットワークエラーなどのクライアント側の例外を処理します。
clientException.printStackTrace();
}
if (serviceException != null) {
// サーバー側の例外を処理します。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
参考資料
バケットの一覧表示に使用する完全なサンプルコードについては、『GitHub』をご参照ください。
バケットを一覧表示するために呼び出すAPI操作の詳細については、「ListBuckets (GetService) 」をご参照ください。