2012-11-16 41 views
9

有沒有可能使用GAE SDK列出Google雲存儲存儲桶中的所有文件?我知道Python SDK支持這樣的功能,但是我無法在Java SDK中找到類似的功能。獲取雲存儲(Java)中的文件列表

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

回答

5

您可以通過其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爲好,這將允許桶您的應用程序所擁有,而不是由一個用戶。

+1

謝謝傑森很多。我以爲我可以在沒有其他庫的情況下使用這樣的功能:(但是它的確定,也許他們以後會隨時集成這些功能。 – Eich

11

你也可以做到這一點使用的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()); 
... 
相關問題