有沒有可能使用GAE SDK列出Google雲存儲存儲桶中的所有文件?我知道Python SDK支持這樣的功能,但是我無法在Java SDK中找到類似的功能。獲取雲存儲(Java)中的文件列表
如果不可用,是否會在未來的Java SDK版本中添加?
有沒有可能使用GAE SDK列出Google雲存儲存儲桶中的所有文件?我知道Python SDK支持這樣的功能,但是我無法在Java SDK中找到類似的功能。獲取雲存儲(Java)中的文件列表
如果不可用,是否會在未來的Java SDK版本中添加?
您可以通過其client library使用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 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());
...
謝謝傑森很多。我以爲我可以在沒有其他庫的情況下使用這樣的功能:(但是它的確定,也許他們以後會隨時集成這些功能。 – Eich