thể trùng lặp:
Notification of new S3 objectsNhận thông báo khi người dùng tải lên một thùng S3?
Chúng tôi đã có một ứng dụng lưu trữ dữ liệu người dùng trên S3. Một phần của ứng dụng xử lý các video tải lên được tách riêng khỏi phần xử lý dữ liệu. Trong một số trường hợp, người dùng sẽ có thể tải dữ liệu trực tiếp lên S3 mà không qua ứng dụng của chúng tôi (điều này có thể xảy ra nếu họ có tài khoản S3 của riêng họ và cung cấp cho chúng tôi thông tin xác thực).
Có thể nhận thông báo bất cứ khi nào nội dung của xô S3 thay đổi không? Nó sẽ được mát mẻ nếu bằng cách nào đó một tin nhắn có thể nhận được gửi nói rằng "tập tin này đã được thêm/cập nhật/xóa: foo".
Thiếu điều đó, có một số dấu thời gian ở đâu đó mà tôi có thể thăm dò ý kiến cho biết lần cuối cùng nhóm được cập nhật không?
Nếu tôi không thể thực hiện một trong những điều này, thì lựa chọn duy nhất là thu thập toàn bộ nhóm và tìm kiếm các thay đổi. Điều này sẽ chậm và tốn kém.
Đối với số lượng nhỏ các đối tượng, tiền tố của tên sẽ hoạt động tốt. Đối với khối lượng lớn các đối tượng, điều này thực sự sẽ làm chậm S3. S3 phân vùng nội bộ dữ liệu dựa trên tên nhóm/khóa đối tượng và các khóa có cùng tiền tố sẽ rất có thể sẽ kết thúc trong cùng một phân vùng. Đối với thông lượng tải lên cao, bạn cần giữ các khóa đối tượng thay đổi ở đầu chuỗi. Xem chi tiết này: http://aws.typepad.com/aws/2012/03/amazon-s3-performance-tips-tricks-seattle-hiring-event.html – dlaidlaw
@dlaidlaw: Như được mô tả bởi Amazon, nó có thể dễ dàng xử lý các cụm trên 100 yêu cầu mỗi giây thậm chí không có phân phối tiền tố đặc biệt của các khóa. Nếu bạn đang xử lý hàng đợi đến nhanh hơn, bạn có thể chỉ cần sử dụng một nhóm "chưa được xử lý" thay vì tiền tố. Tuy nhiên, với tốc độ đó, bạn có thể sẽ sử dụng bộ vi xử lý song song, tại thời điểm đó, đề xuất có một danh sách các tệp chưa được xử lý được phân tích bị bỏ qua (làm thế nào để bạn biết chuỗi nào đang xử lý tệp nào?). –
Với thông lượng rất cao, tôi viết một thông báo cho SQS chứa URI tới tệp trong S3. Nhiều luồng có thể xử lý hàng đợi SQS. Có, có phí trên bằng văn bản thông điệp SQS, nhưng nó là cần thiết, và phân phối trên tất cả các luồng gửi các tập tin đến S3. Sẽ tốt hơn nếu Amazon có một lá cờ để gửi một tin nhắn SNS khi tạo trong S3, sau đó bạn có thể đăng ký một hàng đợi SQS để phân phối tải trên các chủ đề, nhưng cho đến lúc đó bạn phải viết các tin nhắn của riêng bạn hoặc SNS hoặc SQS. – dlaidlaw