S3 không tôn trọng không gian tên phân cấp. Mỗi nhóm chỉ chứa một số ánh xạ từ khóa đến đối tượng (cùng với siêu dữ liệu, ACL được liên kết, v.v.).
Mặc dù khóa đối tượng của bạn có thể chứa '/', S3 coi đường dẫn như một chuỗi thuần túy và đặt tất cả các đối tượng trong một không gian tên phẳng.
Theo kinh nghiệm của tôi, các hoạt động LIST diễn ra (tuyến tính) lâu hơn khi số lượng đối tượng tăng lên, nhưng đây có thể là dấu hiệu của việc tăng I / O được yêu cầu trên các máy chủ Amazon và chuyển đến ứng dụng khách của bạn.
Tuy nhiên, thời gian tra cứu dường như không tăng theo số lượng đối tượng - hầu hết có thể là một số kiểu triển khai bảng băm O (1) ở cuối của chúng - vì vậy việc có nhiều đối tượng trong cùng một nhóm sẽ hoạt động hiệu quả như các nhóm nhỏ để sử dụng bình thường (tức là không phải DANH SÁCH).
Đối với ACL, các khoản trợ cấp có thể được đặt trên nhóm và trên từng đối tượng riêng lẻ. Vì không có hệ thống phân cấp, chúng là hai lựa chọn duy nhất của bạn. Rõ ràng, việc đặt càng nhiều khoản tài trợ theo phạm vi rộng sẽ giúp giảm bớt sự đau đầu của quản trị viên nếu bạn có hàng triệu tệp, nhưng hãy nhớ rằng bạn chỉ có thể cấp quyền chứ không thu hồi chúng, vì vậy, các khoản tài trợ toàn nhóm phải là tập con tối đa của ACL cho tất cả Nội dung của nó.
Tôi khuyên bạn nên chia thành các nhóm riêng biệt cho:
- nội dung hoàn toàn khác - có các nhóm riêng biệt cho hình ảnh, âm thanh và dữ liệu khác tạo nên một kiến trúc lành mạnh hơn
- ACL khác nhau đáng kể - nếu bạn có thể có một nhóm với mỗi đối tượng nhận ACL cụ thể hoặc hai nhóm với các ACL khác nhau và không có ACL dành riêng cho đối tượng, hãy lấy hai nhóm.