簡體   English   中英

從 Ruby 中的 S3 解壓縮 CSV.Zip 文件

[英]Unzip CSV.Zip file from S3 in Ruby

我有一個從 S3 獲取 csv.zip 文件的 rails 應用程序。 有沒有辦法 stream s3 文件並使用 RubyZip 或其他 gem 即時解壓縮它? 我不想下載 memory 中的整個文件。

我正在使用一個塊來下載 S3 object。 當您將塊傳遞給#get_object 時,會在從套接字讀取數據時產生數據塊。

s3.get_object(bucket: 'bucket-name', key:'object-key') 
do |chunk|puts(chunk) 
end

當我嘗試使用 RubyZip 解壓縮塊時,會引發錯誤:

Zip::File.open(chunk) do |zip_file| 
zip_file.each do |entry| 
puts(entry.get_input_stream.read) 
end

如果 zlib 試圖解壓縮一個多部分的 gz 文件,它只能解壓縮第一個塊。

zlib 能夠解壓縮 s3 單個上傳的文件。 因此,如果您能夠為您的應用程序使用 s3 單一上傳與 s3 分段上傳,我建議您探索這條路線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM