gpt4 book ai didi

ruby - 从 S3 逐行流式传输大文件

转载 作者:数据小太阳 更新时间:2023-10-29 08:57:41 26 4
gpt4 key购买 nike

我在 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

您还可以使用 range 作为读取字节范围的选项。

http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/S3Object.html#read-instance_method

关于ruby - 从 S3 逐行流式传输大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46126904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com