获取云存储(Java)中的文件列表

是否有可能使用GAE SDK列出我的Google云端存储分区上的所有文件? 我知道Python SDK支持这样的function,但我在Java SDK中找不到类似的function。

如果不可用,是否会在Java SDK的未来版本中添加?

您可以通过其客户端库使用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 ,这将允许存储桶由您的应用程序拥有,而不是由用户拥有。

您也可以使用Google Java客户端库 (替换Google云端存储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()); ...