zipping remote files

Hello everyone

I am using rubyzip gem for zipping files.

Zipping local files are good and except zipping remote files.

Example(my code):

save_path=“xxx/xx”

image_list = [“http://xxxx.xx.image.jpg”,“http://xxxx.xx.image.jpg”]

Zip::ZipFile.open(save_dir, Zip::ZipFile::CREATE) { |zipfile|

image_list.each do |image|

zipfile.add(image, save_pathr + ‘/’ + image)

end

}

I am gettting error as "No such file or directory - http://xxxx.xx.image.jpg"

how can zip my remote files?

Save the image to your local filesystem, then pass those locations to the method, rather than passing HTTP urls directly.

There is no other way? Because it take time to download from server to
local.

If the resulting archive is supposed to have the data from all the files, it stands to reason the source files have to be read in order to be zipped up.

Why don’t you download the files on a remote server, perhaps a EC2 instance, then run your script to zip them up, and then download the resulting zip file?

There is no other way? Because it take time to download from server to
local.

How can you expect to zip it without fetching the file first, from the
machine xxxx.xx in your example? Do you expect the rubyzip gem to
somehow run on that machine and then send you the zipped file?

Colin

I am using amazon s3 service. I dont know about EC2.
I am zipping multi images which uploaded by customer in one day.
In this case, the images will be more. so if i download and added into zip
file, it may take comeplte too long.

Well, if you’re expecting to somehow zip files on the file server, you’re highly mistaken.

Here’s an article on fast zipping in S3: http://www.w2lessons.com/2012/01/fast-zipping-in-amazon-s3.html

Wait, you know S3 but you don’t know EC2? Huh.