Ruby AWS :: S3 :: S3Object(aws-sdk):是否有与aws-s3一样的流数据传输方法?

Phi*_*ebe 6 ruby amazon-s3 amazon-web-services

在aws-s3中,有一个方法(AWS :: S3 :: S3Object.stream),它允许您将S3上的文件流式传输到本地文件.我无法在aws-sdk中找到类似的方法.

即在aws-s3中,我这样做:

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

AWS :: S3:S3Object.read方法确实将块作为参数,但似乎没有对它执行任何操作.

Tre*_*owe 5

aws-sdk gem现在支持S3中对象的分块读取.以下示例给出了演示:

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
Run Code Online (Sandbox Code Playgroud)


awe*_*ndt 2

目前,还没有正式。我在官方 AWS Ruby 论坛中找到了这个帖子:

ruby aws gem 是否支持从 S3 进行流式下载。引用AWS工作人员的话:

不幸的是,aws-sdk gem 中没有一个好的解决方案。我们正在研究如何让最终用户变得更简单。

有用于分块下载的示例代码。您可能想看看它以获取灵感。