私は、ディスクにzipファイルを書き込み、このコードを、持って戻ってそれを読み込み、S3にアップロードし、ファイルを削除します。Rubyzip:tmpfileをディスクに書き込まなくても、S3に直接ZIPファイルをエクスポートできますか?
compressed_file = some_temp_path
Zip::ZipOutputStream.open(compressed_file) do |zos|
some_file_list.each do |file|
zos.put_next_entry(file.some_title)
zos.print IO.read(file.path)
end
end # Write zip file
s3 = Aws::S3.new(S3_KEY, S3_SECRET)
bucket = Aws::S3::Bucket.create(s3, S3_BUCKET)
bucket.put("#{BUCKET_PATH}/archive.zip", IO.read(compressed_file), {}, 'authenticated-read')
File.delete(compressed_file)
このコードはすでに動作しますが、私がしたいことはにzipファイルを作成されていませんファイルをもう一度保存して、いくつかの手順を保存します。最初にtmpfileを作成しなくても、zipfileデータをs3に直接書き出す方法があるかどうか疑問に思っていました。
'some_file_list'とは何ですか? – Trip
私はそのようなものを推測しています。 'some_file_list = Zip :: ZipFile.open(zipped_file)' – Trip
あります。私にとって、私はS3から自分のファイルを読んでいました。 – index