2
我在s3中有几个10gb csv文件,我想用它来播种我的数据库。我在Heroku上运行RoR应用程序,我无法弄清楚如何逐行传输csv来处理它,因为它太大而不适合内存,我不能使用File.open来访问外部文件。从S3流出一个大文件行
我已经研究过使用Tempfile一次流式传输字节,但它们不匹配新行,并且在Ruby中重建它是很困难的。
谢谢!
我在s3中有几个10gb csv文件,我想用它来播种我的数据库。我在Heroku上运行RoR应用程序,我无法弄清楚如何逐行传输csv来处理它,因为它太大而不适合内存,我不能使用File.open来访问外部文件。从S3流出一个大文件行
我已经研究过使用Tempfile一次流式传输字节,但它们不匹配新行,并且在Ruby中重建它是很困难的。
谢谢!
可以读取的流,作为API文档中描述:http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/S3Object.html
File.open('output', 'wb') do |file|
large_object.read do |chunk|
file.write(chunk)
end
end
也可以使用range
作为一个选项来读取范围的字节。
http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/S3Object.html#read-instance_method