2012-11-16 15 views
9

Czy istnieje możliwość wyświetlenia wszystkich plików w moim kubku Google Cloud Storage za pomocą zestawu SDK GAE? Wiem, że Python SDK obsługuje taką funkcję, ale nie mogę znaleźć podobnej funkcji w Java SDK.Wyświetl listę plików w Cloud Storage (Java)

Jeśli ta opcja nie jest dostępna, czy zostanie ona dodana w przyszłych wydaniach pakietu Java SDK?

Odpowiedz

5

Możesz używać interfejsu JSON API Cloud Storage poprzez jego client library. Po skonfigurowaniu poświadczeń można nawiązać połączenie tak:

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

Możesz użyć AppIdentityCredential w tej sprawie, jak również, co pozwoli wiadro należał do aplikacji, a nie przez użytkownik.

+1

Thanks dużo Jason. Pomyślałem, że mógłbym użyć takiej funkcjonalności bez innej biblioteki :(. Ale jest dobrze, może integrują te funkcje w dowolnym momencie później. – Eich

11

Można też to zrobić za pomocą Google Java Client Library (który jest zastąpienie 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); 
} 

Jeśli chcesz tylko do iteracji pewnej "katalogu", użyj Budowniczy listOptions

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

ListResult result = gcsService.list(appIdentity.getDefaultGcsBucketName(), b.build()); 
... 
Powiązane problemy