ich diesen Code haben, die eine Zip-Datei auf die Festplatte schreibt, liest sie zurück, Uploads bis s3, löscht dann die Datei:Rubyzip: ZIP-Datei direkt in S3 exportieren, ohne tmpfile auf Platte zu schreiben?
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)
Dieser Code funktioniert schon, aber was ich will, ist nicht die Zip erstellen Datei mehr, um ein paar Schritte zu sparen. Ich frage mich, ob es eine Möglichkeit gibt, die Zipfile-Daten direkt nach s3 zu exportieren, ohne zuerst eine tmpfile erstellen zu müssen, sie zurückzulesen und dann zu löschen?
Was ist 'some_file_list'? – Trip
Ich vermute es ist etwas wie .. 'some_file_list = Zip :: ZipFile.open (zipped_file)' – Trip
Könnte sein. Für mich habe ich meine Dateien von S3 gelesen. – index