2009-03-20 40 views
5

Gần đây tôi đã tái cấu trúc một số mã của mình thành hàng bằng cách sử dụng 'tải dữ liệu' và nó hoạt động tốt - tuy nhiên đối với mỗi bản ghi, tôi phải tải 2 tệp lên s3 - điều này hoàn toàn phá hủy nâng cấp tốc độ tuyệt vời mà tôi đã đạt được. Trong khi tôi đã có thể xử lý hơn 600 tài liệu này/giây thì giờ đây chúng đã được viết vào lúc 1 giây vì s3.Tôi làm cách nào để tải lên hàng loạt s3?

Giải pháp cho việc này là gì? Nhìn vào API tôi thấy rằng nó chủ yếu là RESTful vì vậy tôi không chắc chắn phải làm gì - có lẽ tôi chỉ nên dính tất cả điều này vào cơ sở dữ liệu. Các tập tin văn bản thường không quá 1.5k. (tệp khác mà chúng tôi có trong đó là phần trình bày văn bản xml)

Tôi đã lưu các tệp này trong các yêu cầu HTTP vào máy chủ web của mình vì chúng được sử dụng khá nhiều.

btw: triển khai hiện tại của chúng tôi sử dụng java; Tôi chưa thử chủ đề nhưng có thể là một tùy chọn

Đề xuất?

Trả lời

6

Bạn có thể sử dụng chức năng [putObjects] [1] của JetS3t để tải lên nhiều tệp cùng một lúc.

Hoặc bạn có thể sử dụng chuỗi nền để tải lên S3 từ hàng đợi và thêm tệp vào hàng đợi từ mã của bạn để tải dữ liệu vào cơ sở dữ liệu.

[1]: http://jets3t.s3.amazonaws.com/api/org/jets3t/service/multithread/S3ServiceMulti.html#putObjects(org.jets3t.service.model.S3Bucket, org.jets3t.service.model.S3Object [])

+0

thnx rất nhiều - Tôi nên đã chải qua RẰNG api đầu tiên thay vì nghĩ api của s3 rằng sẽ là thúc- tất cả là tất cả; đây chính xác là những gì tôi cần – eyberg

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