2012-03-08 46 views
5

Trong aws-s3, có một phương thức (AWS :: S3 :: S3Object.stream) cho phép bạn truyền một tệp trên S3 tới một tệp cục bộ. Tôi đã không thể xác định được phương pháp tương tự trong aws-sdk.Ruby AWS :: S3 :: S3Object (aws-sdk): Có phương pháp nào để truyền dữ liệu với aws-s3 không?

ví dụ: trong AWS-s3, tôi làm:

File.open(to_file, "wb") do |file| 
    AWS::S3::S3Object.stream(key, region) do |chunk| 
    file.write chunk 
    end 
end 

Các AWS :: S3: Phương pháp S3Object.read không mất một khối như một tham số, nhưng dường như không phải làm bất cứ điều gì với nó.

Trả lời

2

Tại thời điểm này, không chính thức. Tôi tìm thấy chủ đề này trong diễn đàn AWS Ruby chính thức:

Does the ruby aws gem support streaming download from S3. Trích dẫn nhân viên AWS:

Thật không may là không có giải pháp tốt nào được đưa vào đá quý aws-sdk. Chúng tôi đang xem xét cách chúng tôi có thể làm cho điều này đơn giản hơn nhiều cho người dùng cuối.

Có mã mẫu để tải xuống theo khối. Bạn có thể muốn có một cái nhìn tại đó cho cảm hứng.

+1

Đá quý aws-sdk hiện hỗ trợ đọc phát trực tuyến. Chủ đề của diễn đàn đã được cập nhật để phản ánh điều này. –

5

Đá quý aws-sdk bây giờ hỗ trợ đọc chunked của các đối tượng trong S3. Ví dụ sau cung cấp cho demonstation:

s3 = AWS::S3.new 
File.open(to_file, "wb") do |file| 
    s3.buckets['bucket-name'].objects['key'].read do |chunk| 
    file.write chunk 
    end 
end 
+0

Tôi có thể chỉ định kích thước chunk không? –

+0

Theo như tôi biết, Ruby Net :: HTTP không cho phép bạn kiểm soát kích thước của từng đoạn được tạo ra. –

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