S3 बाल्टी में सबफ़ोल्डर नाम प्राप्त कर रहा है boto3 का उपयोग करना, मैं अपने एडब्ल्यूएस S3 बाल्टी का उपयोग कर सकते उदाहरण 1456753904534
। मुझे इन उप-फ़ोल्डर्स का नाम किसी अन्य नौकरी के लिए जानना है जो मुझे लगता है और मुझे आश्चर्य है कि क्या मुझे boto3 मेरे लिए उनको पुनर्प्राप्त कर सकता है।से boto3
तो मैं करने की कोशिश की:
objs = bucket.meta.client.list_objects(Bucket='my-bucket-name')
जो एक शब्दकोश, जिसका कुंजी 'सामग्री' मुझे दूसरे स्तर टाइमस्टैम्प निर्देशिका के बजाय सभी तृतीय-स्तर फ़ाइलों देता है देता है, वास्तव में मैं चीजों को शामिल करते हुए एक सूची प्राप्त के रूप में
{u'ETag ':' 'ETag "', u'Key ': प्रथम स्तर/1456753904534/अंशकालिक 00014', u'LastModified ': datetime.datetime (2016 2, 29 , 13, 52, 24, tzinfo = tzutc()),
u'Owner ': {u'DisplayName': 'owner', u'ID ': 'आईडी'},
u'Size ': आकार, u'StorageClass': 'storageclass'}
आप देख सकते हैं, जब तक मैं चाहता हूँ कि इस मामले part-00014
में विशिष्ट फ़ाइलों, प्राप्त किए गए हैं अकेले निर्देशिका का नाम प्राप्त करने के लिए। सिद्धांत रूप में मैं सभी पथों से निर्देशिका नाम को हटा सकता हूं लेकिन दूसरे स्तर को पाने के लिए यह तीसरे स्तर पर सबकुछ पुनः प्राप्त करने के लिए बदसूरत और महंगा है!
मैं भी कुछ here सूचना दी की कोशिश की:
for o in bucket.objects.filter(Delimiter='/'):
print(o.key)
लेकिन मैं फ़ोल्डरों वांछित स्तर पर नहीं मिलता है।
क्या इसे हल करने का कोई तरीका है?
तो तुम कह रहे हो कि [इस] (https://github.com/बोटो/boto3/मुद्दों/134 # मुद्दा टिप्पणी-116766812) काम नहीं करता है? क्या आप पोस्ट कर सकते हैं जब आप इसे चलाते हैं? –
@ जोर्डन फिलिप्स मैंने आपके द्वारा भेजे गए लिंक की पहली पंक्तियों को आजमाया है, जिसे मैंने यहां चिपकाया है, और मुझे टेक्स्ट फाइलें बाल्टी के पहले स्तर पर और कोई फ़ोल्डर्स नहीं मिलती हैं। –
@mar tin क्या आपने कभी इस मुद्दे को हल किया था। मुझे एक समान दुविधा का सामना करना पड़ रहा है जहां मुझे हर बाल्टी सबफ़ोल्डर में पहला तत्व चाहिए। –