Mam ten kod, który zapisuje plik zip na dysku, czyta je z powrotem, przesłane do S3, a następnie usuwa plik:Rubyzip: Eksportuj plik ZIP bezpośrednio do S3 bez zapisywania pliku tmp na dysku?
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)
ten kod działa już ale co ja chcę to nie tworzyć zip plik już więcej, aby zapisać kilka kroków. Zastanawiam się, czy istnieje sposób na wyeksportowanie danych zipfile bezpośrednio do s3 bez konieczności tworzenia pliku tmp, odczytywania go, a następnie usuwania?
Co to jest 'some_file_list'? – Trip
Zgaduję, że jest to coś w stylu .. 'some_file_list = Zip :: ZipFile.open (zipped_file)' – Trip
Może być. Dla mnie czytałem moje pliki z S3. – index