Ruby on rails 如何使用RubyonRails向已有的zip文件添加密码
我已经用ruby创建了一个ZIP文件,现在我必须给这个文件添加密码。但它不起作用。有人能帮忙吗。我正在使用rubyzip和zip-gem。 我尝试的代码如下:Ruby on rails 如何使用RubyonRails向已有的zip文件添加密码,ruby-on-rails,ruby,ruby-on-rails-4,rubygems,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 4,Rubygems,Ruby On Rails 3.2,我已经用ruby创建了一个ZIP文件,现在我必须给这个文件添加密码。但它不起作用。有人能帮忙吗。我正在使用rubyzip和zip-gem。 我尝试的代码如下: #Create Zip File and delete if already existing filename= 'abc.xlsx' zip_file_path = Rails.root.join('tmp/my.zip') file_name =filenam
#Create Zip File and delete if already existing
filename= 'abc.xlsx'
zip_file_path = Rails.root.join('tmp/my.zip')
file_name =filename
file_path = Rails.root.join('tmp', filename)
logger.error zip_file_path
logger.error file_path
File.delete(zip_file_path) if File.exist?(zip_file_path)
Zip::ZipFile.open(zip_file_path, Zip::ZipFile::CREATE) do |zip|
zip.add(file_name, file_path)
end
# end
下一步是向ZIP文件添加密码。我试过下面的方法
Zip::File.encrypt(zip_file_path, 'password')
# Got error like : **NameError (uninitialized constant Zip::Archive):**
我还尝试使用以下方法:
Zip::OutputStream.write_buffer(::StringIO.new(''), Zip::TraditionalEncrypter.new('password')) do |out|
out.put_next_entry("my_file.txt")
out.write my_data
end.string
#error: **NameError (uninitialized constant Zip::TraditionalEncrypter):**
“不起作用”——什么不起作用?你试过什么?您得到了什么结果/错误?为什么将其标记为
ruby-on-rails
、ruby-on-rails-4
和ruby-on-rails-3.2
?rails与这个问题相关吗?(为什么?)我使用的是rail版本--“3.2.13”,请包含所有相关信息;不要把它埋在评论里。你在用哪个图书馆?(什么是Zip
?)rails实际上与问题/解决方案有关,还是多余的信息?如果相关,那么解释原因;如果不是,那么就没有必要给问题贴上这样的标签。