GAESDKを使用してGoogleCloudStorageバケット上のすべてのファイルを一覧表示する可能性はありますか?Python SDKがそのような関数をサポートしていることは知っていますが、JavaSDKで同様の関数を見つけることができません。
利用できない場合、これはJava SDKの将来のリリースで追加されますか?
GAESDKを使用してGoogleCloudStorageバケット上のすべてのファイルを一覧表示する可能性はありますか?Python SDKがそのような関数をサポートしていることは知っていますが、JavaSDKで同様の関数を見つけることができません。
利用できない場合、これはJava SDKの将来のリリースで追加されますか?
これは、 Google Java クライアント ライブラリ( Google Cloud Storage APIを置き換えるもの)を使用して行うこともできます。
GcsService gcsService = GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());
AppIdentityService appIdentity = AppIdentityServiceFactory.getAppIdentityService();
ListResult result = gcsService.list(appIdentity.getDefaultGcsBucketName(), ListOptions.DEFAULT);
while (result.hasNext()){
ListItem l = result.next();
String name = l.getName();
System.out.println("Name: " + name);
}
特定の「ディレクトリ」のみを反復処理する場合は、ListOptions ビルダーを使用します
ListOptions.Builder b = new ListOptions.Builder();
b.setRecursive(true);
b.setPrefix("directory");
...
ListResult result = gcsService.list(appIdentity.getDefaultGcsBucketName(), b.build());
...
クライアント ライブラリ経由で Cloud Storage JSON API を使用できます。資格情報を設定したら、次のように呼び出しを行うことができます。
Storage storage = new Storage(httpTransport, jsonFactory, credential);
ObjectsList list = storage.objects().list("bucket-name").execute();
for (Object obj : list.getItems()) {
//...
}
この場合も を使用するAppIdentityCredential
と、ユーザーではなくアプリケーションがバケットを所有できるようになります。