[英]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.