2012-11-16 17 views
9

में फ़ाइलों की सूची प्राप्त करें क्या GAE SDK के साथ मेरी Google क्लाउड स्टोरेज बाल्टी पर सभी फ़ाइलों को सूचीबद्ध करने की कोई संभावना है? मुझे पता है कि पायथन एसडीके इस तरह के एक समारोह का समर्थन करता है, लेकिन मुझे जावा एसडीके में एक समान कार्य नहीं मिल रहा है।क्लाउड स्टोरेज (जावा)

यदि उपलब्ध नहीं है, तो क्या यह जावा एसडीके की भविष्य की रिलीज में जोड़ा जाएगा?

उत्तर

5

आप क्लाउड स्टोरेज JSON API का उपयोग अपने client library के माध्यम से कर सकते हैं। एक बार जब आप अपने क्रेडेंशियल्स की स्थापना की आप इस तरह कॉल कर सकते हैं:

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

साथ ही आप इस मामले में एक AppIdentityCredential उपयोग करने के लिए है, जो एक से बाल्टी अपने आवेदन के स्वामित्व में जाने की अनुमति देगा, और नहीं चाहते हो सकता है उपयोगकर्ता।

+1

धन्यवाद करते हैं, का उपयोग कर सकते ListOptions बिल्डर बहुत जेसन मैंने सोचा कि मैं किसी अन्य लाइब्रेरी के बिना ऐसी कार्यक्षमता का उपयोग कर सकता हूं :(लेकिन यह ठीक है, शायद वे किसी भी समय इन कार्यों को एकीकृत कर सकते हैं। – Eich

11

इस Google Java Client Library का उपयोग कर

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); 
} 

(जो Google Cloud Storage API को बदल रहा है) आप केवल एक निश्चित "निर्देशिका" के माध्यम से पुनरावृति करना चाहते हैं

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

ListResult result = gcsService.list(appIdentity.getDefaultGcsBucketName(), b.build()); 
... 
संबंधित मुद्दे