S3 में प्रति निर्देशिका अधिकतम फ़ाइलें


87

अगर मेरे पास एक लाख छवियां हैं, तो क्या उन्हें कुछ फ़ोल्डर / सब-फ़ोल्डर पदानुक्रम में स्टोर करना बेहतर होगा या बस उन सभी को सीधे बाल्टी (किसी भी फ़ोल्डर के बिना) में डंप करें?

सभी छवियों को एक पदानुक्रम-कम बाल्टी में डंप करना LIST ऑपरेशन को धीमा कर देगा?

क्या फ्लाई पर फ़ोल्डर्स और उप फ़ोल्डर्स बनाने और उनके एसीएल (प्रोग्राम बोलने वाले) स्थापित करने में एक महत्वपूर्ण ओवरहेड है?

जवाबों:


124

S3 पदानुक्रमित नामस्थानों का सम्मान नहीं करता है। प्रत्येक बाल्टी में कुंजी से लेकर ऑब्जेक्ट (संबद्ध मेटाडेटा, एसीएल और इतने पर) के साथ कई मैपिंग शामिल हैं।

भले ही आपकी ऑब्जेक्ट की कुंजी में '/' हो, S3 एक सादे स्ट्रिंग के रूप में पथ को मानता है और सभी वस्तुओं को एक समतल नामस्थान में रखता है।

मेरे अनुभव में, एलआईएसटी ऑपरेशंस (रैखिक रूप से) ऑब्जेक्ट काउंट में वृद्धि के रूप में अधिक समय लेते हैं, लेकिन यह संभवतः अमेज़ॅन सर्वरों पर आवश्यक I / O की वृद्धि का एक लक्षण है, और आपके क्लाइंट के लिए तार नीचे।

हालाँकि, लुकअप समय ऑब्जेक्ट काउंट के साथ नहीं बढ़ रहा है - यह संभवतः उनके अंत में किसी प्रकार का O (1) हैशटेबल कार्यान्वयन है - इसलिए एक ही बकेट में कई ऑब्जेक्ट्स सामान्य प्रदर्शन के लिए छोटे बाल्टी के रूप में होने चाहिए (यानी नहीं)।

एसीएल के रूप में, अनुदान बाल्टी पर और प्रत्येक व्यक्तिगत वस्तु पर सेट किया जा सकता है। जैसा कि कोई पदानुक्रम नहीं है, वे आपके केवल दो विकल्प हैं। जाहिर है, अगर आप लाखों फाइलें हैं, तो कई बकेट-वाइड ग्रांट सेट करने से आपके एडमिन का सिरदर्द काफी हद तक कम हो जाएगा, लेकिन याद रखें कि आप केवल परमिशन दे सकते हैं, उन्हें रद्द न करें, इसलिए बकेट-वाइड ग्रांट सभी के लिए ACL की अधिकतम उपसमुच्चय होनी चाहिए। इसकी सामग्री।

मैं इसके लिए अलग बाल्टी में विभाजित करने की सलाह दूंगा:

  • पूरी तरह से अलग सामग्री - छवियों, ध्वनि और अन्य डेटा के लिए अलग बाल्टी होने से एक अधिक समझदार वास्तुकला के लिए बनाता है
  • काफी भिन्न ACLs - यदि आपके पास विशिष्ट ACL प्राप्त करने वाली प्रत्येक वस्तु के साथ एक बाल्टी हो सकती है, या विभिन्न ACL के साथ दो बाल्टी और कोई वस्तु-विशिष्ट ACL नहीं है, तो दो बाल्टी लें।

S3 में बाल्टियाँ होती हैं और फिर आपके अंदर 'फोल्डर' और 'ऑब्जेक्ट' हो सकते हैं जहाँ सिस्टम की नज़र में एक फोल्डर शायद एक ऑब्जेक्ट है
mwm

14
@ mwm तुम गलत हो। "फ़ोल्डर" कड़ाई से यूआई निकेट्स हैं जो किसी भी उपकरण द्वारा उपयोग किए जा रहे हैं। जेम्स सही है कि चाबियाँ स्लैश हो सकती हैं, लेकिन यह s3 बिल्कुल भी परवाह नहीं करता है - यह निश्चित रूप से फ़ोल्डर के रूप में उनके बारे में नहीं सोचता है।
Ry4an Brase

S3 निश्चित रूप से पथ उपसर्ग के आधार पर दर सीमा अनुरोध करता है, आधिकारिक डॉक्स देखें: docs.aws.amazon.com/AmazonS3/latest/dev/…
अनातोली

S3 उपसर्ग अब आवश्यक या अनुशंसित नहीं हैं: aws.amazon.com/about-aws/whats-new/2018/07/…
Aea


-3

मैं एक रूट के साथ एक निर्देशिका संरचना का उपयोग करता हूं फिर कम से कम एक उप निर्देशिका। मैं अक्सर रूट के तहत निर्देशिका के रूप में "दस्तावेज़ आयात की तारीख" का उपयोग करता हूं। यह बैकअप को थोड़ा आसान बना सकता है। आप जिस भी फ़ाइल सिस्टम का उपयोग कर रहे हैं, वह अंततः फ़ाइल गणना सीमा (एक व्यावहारिक नहीं तो एक भौतिक सीमा) से टकराने के लिए बाध्य है। आप कई जड़ों का समर्थन करने के बारे में सोच सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.