Tệp tối đa cho mỗi thư mục trong S3


87

Nếu tôi có một triệu hình ảnh, sẽ tốt hơn nếu lưu trữ chúng trong một số phân cấp thư mục / thư mục con hay chỉ đổ tất cả chúng thẳng vào một thùng (không có bất kỳ thư mục nào)?

Việc đổ tất cả hình ảnh vào một nhóm ít phân cấp có làm chậm hoạt động LIST không?

Có chi phí đáng kể trong việc tạo thư mục và thư mục con nhanh chóng và thiết lập ACL của chúng (nói theo chương trình) không?

Câu trả lời:


124

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.

trong S3 có các thùng và sau đó bên trong bạn có thể có 'thư mục' và 'đối tượng' trong đó thư mục có thể là một đối tượng trong mắt hệ thống
mwm

14
@mwm bạn nhầm rồi. Các "thư mục" hoàn toàn là các tiện ích giao diện người dùng được cung cấp bởi bất kỳ công cụ nào bạn đang sử dụng. James đúng rằng các phím có thể có dấu gạch chéo nhưng s3 đó hoàn toàn không quan tâm - nó chắc chắn không nghĩ chúng là các thư mục.
Ry4an Brase

S3 chắc chắn xếp hạng các yêu cầu giới hạn dựa trên tiền tố đường dẫn, hãy xem tài liệu chính thức: docs.aws.amazon.com/AmazonS3/latest/dev/…
Anatoly

Tiền tố S3 không còn cần thiết hoặc được khuyến nghị: aws.amazon.com/about-aws/whats-new/2018/07/…
Aea


-3

Tôi sử dụng cấu trúc thư mục với thư mục gốc sau đó có ít nhất một thư mục con. Tôi thường sử dụng "ngày nhập tài liệu" làm thư mục dưới thư mục gốc. Điều này có thể giúp quản lý các bản sao lưu dễ dàng hơn một chút. Dù bạn đang sử dụng hệ thống tệp nào thì cuối cùng bạn cũng phải đạt đến giới hạn số lượng tệp (một giới hạn thực tế nếu không phải là giới hạn vật lý). Bạn cũng có thể nghĩ đến việc hỗ trợ nhiều rễ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.