2012-11-08 30 views
7

Khi tôi yêu cầu tóm tắt đối tượng từ S3 qua amazonS3Client.listObjects(), danh sách được trả về theo thứ tự chữ cái chính.S3 của Amazon có thể trả về các bản tóm tắt đối tượng theo thứ tự ngày không?

Có ai biết cách lấy S3 để trả về các đối tượng theo thứ tự (lastModified), vì vậy các đối tượng mới nhất được trả về trước?

Cảm ơn.

+0

Nếu bạn tải chúng như là một 'List', bạn có thể ra lệnh cho họ bất kỳ cách nào bạn thích với 'Comparator' sau khi chúng được tải xuống –

+3

cảm ơn, vâng tôi có thể đặt hàng được trả về bằng cách sử dụng bộ so sánh, nhưng nếu tôi có hơn 1000 mục trong nhóm, nó không đảm bảo rằng các đối tượng mới nhất được trả về trong lần đầu tiên 1000, cũng với một ứng dụng di động tôi đang sử dụng phân trang và chỉ yêu cầu 20 mục tại một time.I do đó sẽ yêu cầu s3 trả lại cho tôi chỉ các đối tượng mới nhất đầu tiên –

Trả lời

0

Sự cố thú vị. Theo tôi, vấn đề với ListObject là bạn phải tải xuống các đối tượng, có thể có kích thước GB.

Không có giải pháp về vấn đề này nhưng tôi đã tìm thấy giải pháp thay thế trong diễn đàn phát triển .net.

Link to development forum

1

Chỉ cần sắp xếp danh sách sau

Java 8

s3ObjectSummaries.sort(Comparator.comparing(S3ObjectSummary::getLastModified)); 

Trước

Collections.sort(s3ObjectSummaries, new Comparator<S3ObjectSummary>() { 
    public int compare(S3ObjectSummary o1, S3ObjectSummary o2) { 
     return o1.getLastModified().compareTo(o2.getLastModified()); 
    } 
}); 
+1

Điều này sẽ không hoạt động nếu kết quả ListObject bị cắt ngắn (tức là phân trang) – bla

Các vấn đề liên quan