S3 ไม่เคารพเนมสเปซแบบลำดับชั้น แต่ละที่เก็บข้อมูลจะมีการแมปจำนวนหนึ่งจากคีย์หนึ่งไปยังอ็อบเจ็กต์ (พร้อมด้วยข้อมูลเมตาที่เกี่ยวข้อง ACL และอื่น ๆ )
แม้ว่าคีย์ของอ็อบเจ็กต์ของคุณอาจมี '/' แต่ S3 จะถือว่าพา ธ เป็นสตริงธรรมดาและทำให้อ็อบเจ็กต์ทั้งหมดอยู่ในเนมสเปซแบบแบน
จากประสบการณ์ของฉันการดำเนินการ LIST ใช้เวลา (เชิงเส้น) นานขึ้นเมื่อจำนวนวัตถุเพิ่มขึ้น แต่นี่อาจเป็นอาการของ I / O ที่เพิ่มขึ้นที่จำเป็นในเซิร์ฟเวอร์ Amazon และเชื่อมต่อกับไคลเอนต์ของคุณ
อย่างไรก็ตามเวลาในการค้นหาดูเหมือนจะไม่เพิ่มขึ้นตามจำนวนวัตถุ แต่ส่วนใหญ่อาจเป็นการนำแฮชแท็ก O (1) บางประเภทมาใช้ในตอนท้ายดังนั้นการมีวัตถุจำนวนมากในที่เก็บข้อมูลเดียวกันควรมีประสิทธิภาพเท่ากับที่เก็บข้อมูลขนาดเล็กสำหรับการใช้งานปกติ (เช่น ไม่ใช่ LISTs)
สำหรับ ACL คุณสามารถตั้งค่าการให้สิทธิ์ในที่เก็บข้อมูลและในแต่ละออบเจ็กต์ เนื่องจากไม่มีลำดับชั้นจึงเป็นเพียงสองตัวเลือกของคุณ เห็นได้ชัดว่าการตั้งค่าการให้สิทธิ์แบบกว้างทั้งถังจะช่วยลดอาการปวดหัวของผู้ดูแลระบบได้อย่างมากหากคุณมีไฟล์หลายล้านไฟล์ แต่จำไว้ว่าคุณสามารถให้สิทธิ์ได้เท่านั้นไม่สามารถเพิกถอนได้ดังนั้นการให้สิทธิ์ทั่วทั้งถังควรเป็นชุดย่อยสูงสุดของ ACL เนื้อหาของมัน
ฉันขอแนะนำให้แยกออกเป็นถังแยกต่างหากสำหรับ:
- เนื้อหาที่แตกต่างกันโดยสิ้นเชิง - การมีที่เก็บข้อมูลภาพเสียงและข้อมูลอื่น ๆ แยกจากกันทำให้สถาปัตยกรรมมีเหตุผลมากขึ้น
- ACL ที่แตกต่างกันอย่างมีนัยสำคัญ - หากคุณสามารถมีที่เก็บข้อมูลหนึ่งรายการโดยแต่ละออบเจ็กต์ได้รับ ACL เฉพาะหรือสองที่เก็บข้อมูลที่มี ACL ต่างกันและไม่มี ACL เฉพาะออบเจ็กต์ให้ใช้สองที่เก็บ