是否有可能使用 GAE SDK 列出我的 Google Cloud Storage 存储桶中的所有文件?我知道 Python SDK 支持这样的功能,但是我在 Java SDK 中找不到类似的功能。
如果不可用,是否会在 Java SDK 的未来版本中添加?
是否有可能使用 GAE SDK 列出我的 Google Cloud Storage 存储桶中的所有文件?我知道 Python SDK 支持这样的功能,但是我在 Java SDK 中找不到类似的功能。
如果不可用,是否会在 Java SDK 的未来版本中添加?
您也可以使用Google Java Client Library(它正在替换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()) {
//...
}
在这种情况下,您可能还想使用 an AppIdentityCredential
,这将允许存储桶由您的应用程序拥有,而不是由用户拥有。