zas*_*ail 7 ruby io heroku amazon-s3 large-files
我在 s3 中有一些 10gb csv 文件,我想用它们来为我的数据库播种。我正在 Heroku 上运行 RoR 应用程序,但我不知道如何逐行流式传输 csv 来处理它,因为它太大而无法放入内存,而且我无法使用 File.open 访问外部文件。
我研究过使用 Tempfile 一次传输字节,但它们与新行不匹配,并且在 Ruby 中重建它很困难。
谢谢你!
您可以读取流,如 API 文档中所述:http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/S3Object.html
s3 = AWS::S3.new
large_object = s3.buckets['my-bucket'].objects['key'] # no request made
File.open('output', 'wb') do |file|
large_object.read do |chunk|
file.write(chunk)
end
end
Run Code Online (Sandbox Code Playgroud)
您还可以用作range读取一系列字节的选项。
http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/S3Object.html#read-instance_method
| 归档时间: |
|
| 查看次数: |
4098 次 |
| 最近记录: |