S3 पदानुक्रमित नामस्थानों का सम्मान नहीं करता है। प्रत्येक बाल्टी में कुंजी से लेकर ऑब्जेक्ट (संबद्ध मेटाडेटा, एसीएल और इतने पर) के साथ कई मैपिंग शामिल हैं।
भले ही आपकी ऑब्जेक्ट की कुंजी में '/' हो, S3 एक सादे स्ट्रिंग के रूप में पथ को मानता है और सभी वस्तुओं को एक समतल नामस्थान में रखता है।
मेरे अनुभव में, एलआईएसटी ऑपरेशंस (रैखिक रूप से) ऑब्जेक्ट काउंट में वृद्धि के रूप में अधिक समय लेते हैं, लेकिन यह संभवतः अमेज़ॅन सर्वरों पर आवश्यक I / O की वृद्धि का एक लक्षण है, और आपके क्लाइंट के लिए तार नीचे।
हालाँकि, लुकअप समय ऑब्जेक्ट काउंट के साथ नहीं बढ़ रहा है - यह संभवतः उनके अंत में किसी प्रकार का O (1) हैशटेबल कार्यान्वयन है - इसलिए एक ही बकेट में कई ऑब्जेक्ट्स सामान्य प्रदर्शन के लिए छोटे बाल्टी के रूप में होने चाहिए (यानी नहीं)।
एसीएल के रूप में, अनुदान बाल्टी पर और प्रत्येक व्यक्तिगत वस्तु पर सेट किया जा सकता है। जैसा कि कोई पदानुक्रम नहीं है, वे आपके केवल दो विकल्प हैं। जाहिर है, अगर आप लाखों फाइलें हैं, तो कई बकेट-वाइड ग्रांट सेट करने से आपके एडमिन का सिरदर्द काफी हद तक कम हो जाएगा, लेकिन याद रखें कि आप केवल परमिशन दे सकते हैं, उन्हें रद्द न करें, इसलिए बकेट-वाइड ग्रांट सभी के लिए ACL की अधिकतम उपसमुच्चय होनी चाहिए। इसकी सामग्री।
मैं इसके लिए अलग बाल्टी में विभाजित करने की सलाह दूंगा:
- पूरी तरह से अलग सामग्री - छवियों, ध्वनि और अन्य डेटा के लिए अलग बाल्टी होने से एक अधिक समझदार वास्तुकला के लिए बनाता है
- काफी भिन्न ACLs - यदि आपके पास विशिष्ट ACL प्राप्त करने वाली प्रत्येक वस्तु के साथ एक बाल्टी हो सकती है, या विभिन्न ACL के साथ दो बाल्टी और कोई वस्तु-विशिष्ट ACL नहीं है, तो दो बाल्टी लें।