2012-11-16 5 views
9

Gibt es eine Möglichkeit, alle Dateien in meinem Google Cloud Storage-Bucket mit dem GAE SDK aufzulisten? Ich weiß, dass das Python SDK eine solche Funktion unterstützt, aber ich kann keine ähnliche Funktion im Java SDK finden.Liste der Dateien in Cloud Storage (Java) abrufen

Wenn nicht verfügbar, wird dies in den zukünftigen Versionen des Java SDK hinzugefügt?

Antwort

5

Sie können die Cloud Storage JSON API über die client library verwenden. Sobald Sie Ihre Zugangsdaten einrichten können Sie den Aufruf wie folgt machen:

Storage storage = new Storage(httpTransport, jsonFactory, credential); 
ObjectsList list = storage.objects().list("bucket-name").execute(); 
for (Object obj : list.getItems()) { 
    //... 
} 

Vielleicht möchten Sie auch einen AppIdentityCredential in diesem Fall verwenden, was die Schaufel von der Anwendung, und nicht durch ein im Besitz werden können Benutzer.

+1

Dank viel Jason. Ich dachte, ich könnte eine solche Funktionalität ohne eine andere Bibliothek verwenden :(. Aber es ist ok, vielleicht integrieren sie diese Funktionen zu einem späteren Zeitpunkt. – Eich

11

Sie können dies auch die Google Java Client Library mit tun (die ersetzt das 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); 
} 

Wenn Sie nur durch eine gewisse „Verzeichnis“ wiederholen, verwenden Sie die list builder

ListOptions.Builder b = new ListOptions.Builder(); 
b.setRecursive(true); 
b.setPrefix("directory"); 
... 

ListResult result = gcsService.list(appIdentity.getDefaultGcsBucketName(), b.build()); 
... 
Verwandte Themen