मेरी S3 बाल्टी कि इतने की तरह एक संरचना में चित्र शामिल हैं को देखते हुए:केवल रूट वस्तुओं (फ़ोल्डर्स) एस 3 में की सूची प्राप्त - एडब्ल्यूएस एसडीके v3 php
root/portraits/portrait_001.jpg
root/landscapes/landscape_001.jpg
जहां जड़ मेरी बाल्टी है, और कोई अन्य कर रहे हैं मेरी जड़ में फाइलें, बस उन फ़ोल्डर्स (ऑब्जेक्ट्स), मैं केवल उन ऑब्जेक्ट्स की सूची कैसे प्राप्त करूं?
portraits/
landscapes/
मैं ListObjects कॉल में डेलीमीटर और उपसर्ग का उपयोग करने से परिचित हूं।
अगर मैं निम्नलिखित करते हैं, मेरे पास कोई परिणाम प्राप्त:
$objects = $s3->getIterator('ListObjects', array(
'Bucket' => $bucket,
'Delimiter' => '/',
));
foreach($objects as $object)
echo $object['Key'] . "\n";
अगर मैं एक सीमान्तक का उपयोग नहीं करते, मैं सब कुछ मिलता है, जाहिर है।
मैं उपसर्ग का उपयोग नहीं कर सकता क्योंकि मेरी इच्छित वस्तुएं रूट-स्तर हैं। अन्यथा, मुझे उपसर्ग का उपयोग करने में कोई समस्या नहीं है, केवल 'पोर्ट्रेट /'
मेरी खोजों से, मैंने केवल पिछले वर्षों से समाधान ढूंढने में कामयाब रहा है जो केवल aws php sdk v1 पर लागू होते हैं या v2, और मुझे कोशिश करने में कोई भाग्य नहीं है (v3 काफी अलग है)
कोई सुझाव? मुझे लगता है कि मुझे कुछ आसान याद आ रहा है, लेकिन दस्तावेज़ीकरण के माध्यम से खोज रहा है, मुझे मेरी मदद करने के लिए कुछ भी नहीं मिला। एक अंतिम उपाय के रूप में, मैं सिर्फ मैन्युअल रूप से एक सरणी
$categories = ['portraits/', 'landscapes/']
घोषित करने के साथ रहना होगा लेकिन उस मामले में जहां मैं भविष्य में और अधिक श्रेणियां जोड़ना चाहते में आदर्श नहीं है, और के बारे में चिंता करने की जरूरत नहीं मैन्युअल रूप से एक और श्रेणी जोड़ना।
किसी भी मदद की बहुत सराहना की जाएगी :)
संपादित करें - समाधान
मैं गलत स्थानों में देख चाहिए किया गया है के दौरान मेरी वस्तु उदासीनता, लेकिन अंत में से लौटे परिणाम में आम उपसर्गों देखा एक ListObjects, '/' के एक सीमांकक के साथ कॉल तो जैसे:
$s3->listObjects(array('Bucket' => $bucket, 'Delimiter' => '/'));
आप की '' CommonPrefixes' ListBucket' से लौटे सूची का उपयोग कर की कोशिश की? https://docs.aws.amazon.com/AmazonS3/latest/dev/ListingKeysHierarchy.html –
मूल रूप से मुझे कहीं भी सामान्य उपसर्ग नहीं मिल सका, लेकिन शायद मैं देख रहा था कि मेरे ऑब्जेक्ट के दौरान गलत जगहों पर डंप हो जाती है।मैंने अभी उन्हें पाया है। सहायता के लिए धन्यवाद :) –