如何在Rails 5.x.x应用程序中以Sip格式从S3下载多个文件? [英] How to download multiple files from S3 as Zip format in Rails 5.x.x app?

查看:96
本文介绍了如何在Rails 5.x.x应用程序中以Sip格式从S3下载多个文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在实现一项功能,该功能允许用户从S3下载单个文件或多个文件. 单个文件下载正常,但是对于多个文件,我在Heroku上收到错误消息,

I am implementing feature which allows user to either download single file or multiple files from S3. Single file downloading is working properly, but for multiple files I am receiving error on Heroku,

Errno::ENOENT (No such file or directory @ rb_file_s_lstat )

用于以zip格式下载文件的控制器代码段如下,

Controller code snippet for downloading files as zip format is as below,

def method_name
   zipfile_name = "#{Rails.root}/public/archive.zip"
   Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile |
     @transfer.transfer_attachments.each do |attachment | 
       zipfile.add(attachment.avatar.file.filename, attachment.avatar.url)
     end
   end
   send_file(File.join("#{Rails.root}/public/", 'archive.zip'), : type =>
'application/zip', : filename => "#{Time.now.to_date}.zip")
end

宝石文件

ruby '2.3.1'

gem 'rails', '~> 5.0.1'

gem 'rubyzip', '>= 1.0.0'

gem 'zip-zip'

此zipfile功能适用于本地存储的文件.

This zipfile functionality works proper with locally stored files.

推荐答案

猜:您正在将附件添加为url,但是应该添加(本地)文件路径.

Guess: You are adding attachments as urls, but you should be adding (local) file paths instead.

这篇关于如何在Rails 5.x.x应用程序中以Sip格式从S3下载多个文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆