问题标签 [rubyzip]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - RubyZip 失败 - 关闭流
我有一本带有以下红宝石代码的厨师食谱:
我在工件存储库中有一个 zip 文件,该文件已压缩并上传,我提供了该端点以供此代码接收:
这使用了帖子中提到的辅助函数,但是当我运行它时,出现以下错误:
不知道为什么我会在这里得到“封闭流”?
ruby-on-rails - NameError - 未初始化的常量 Zip
我正在尝试在我的 Spree 插件中解压缩文件。
在一个看起来像这样的模块中定义了解压缩方法。
我在我的 Gemfile 中包含了 rubyzip gem。
尝试运行它时,我收到以下错误。
我已经尝试过 stackoverflow 和其他网站提供的所有解决方案。我尝试降级现在 1.2.0 的 rubyzip 版本并添加require 'zip'
or require 'zip/zip'
. 两者都返回加载错误。
我已经尝试添加require 'zip/filesystem'
到课程中。但是得到了
有什么解决办法吗?
ruby - 未初始化的常量 Zip::Archive
最初我使用了 zipruby gem 并升级了 rails 环境并尝试切换 rubyzip。那么这相当于什么。
在 gem 文件中使用 gem - gem 'rubyzip',gem 'nokogiri',rails-4.1.9,ruby -2.2
问题 - 未初始化的常量 Zip::Archive
ruby - rubyzip Zip::FileSystem::ZipFsDir glob 方法坏了?
glob
使用 1.2.0 版,当我尝试调用一个ZipFsDir
对象时,我得到了奇怪的结果。在 Rails 控制台中:
为什么报告该方法未定义Zip::FileSystem::ZipFileNameMapper
?我在一个ZipFsDir
对象上调用它。文档清楚地列出glob
了ZipFsDir 实例方法。
ruby-on-rails - 如何使用 RubyZIP 将现有文件添加到 ZIP 文件?
在我的 Rails 4.2 应用程序中,我使用RubyZIP创建类似于以下内容的控制器操作:
在示例中,两个文件是动态创建和写入的,然后保存到 ZIP 文件中。
但是如何将已经存在的文件(!)也添加到 ZIP 文件中,例如我/app/assets/documents
文件夹中的 PDF 文件?
这应该更容易实现,但我找不到任何文档。
谢谢你的帮助。
ruby - rubyzip 输出字符串和写入文件的 md5sum 不同
我正在使用 rubyzip-1.2.0 和 ruby 2.2.1 来生成一个包含单个文件的 zip 文件(在本例中是一个 python 脚本)。内容文件没有变化,生成的zip字符串的md5sum保持不变,但是一旦我写入然后读取zip字符串到文件,长度增加并且每次md5sum都不一样。无论我使用File.open(zip_file, 'wb') {}
还是都会发生这种情况IO.binwrite(zip_file, zip_string)
。
更令人兴奋的是,在 OS X 上,zip 字符串和写入的文件大小不同(当然,md5sum 不同),但在 Ubuntu 14.04 上,大小保持一致并且 md5sum 不同。
如果我多次生成文件而没有暂停,则校验和(通常)是相同的;如果我进入睡眠状态,它们会有所不同,这让我想知道 rubyzip 是否正在将某种时间戳写入文件?
我可能只是错过了 ruby 二进制文件处理的一些细微差别。
OS X 上的输出:
Ubuntu 14.04 上的输出:
任何解释或解决方法?我想在重写文件之前确保 zip 文件的内容不同。
编辑以修复文件 md5sum 并更新输出。
编辑 实际上 rubyzip 确实将当前时间戳放在每个条目中(为什么?)。如果我对其进行修补以便我可以操纵条目属性,则 zip 字符串的 md5sum 将保持不变。
ruby - 如何使用 rubyzip 在 Zip 文件中设置二进制标志?
我收到了关于我使用 rubyzip 1.2.0 创建的 zip 文件的投诉:
text.pdf 的文本标志在解压后损坏了 pdf。
我在 windows 下创建 zip,收件人使用 Unix/Linux。
zipinfo
您可以使用(或unzip -Z
使用窗口)
查看标志。unzip -Z -l test.zip
结果:
这是相关的测试代码:
我检查了Zip::Entry的源代码,找到了 的定义
@internal_file_attributes = 1
,但不可能影响这个值。
根据这些信息,我制作了一个补丁 Zip::Entry,如下所示:
当我在上面的测试代码中添加这个补丁时,我得到:
所以我找到了解决我的问题的方法 - 但是还有另一个更好的解决方案吗?
在添加文件期间是否可以设置二进制标志?
ruby-on-rails - Xlsx 文件在使用 rubyzip 压缩并在 Windows 上解压缩后在 MS Excel 上出现错误
其实我的要求是在一些文件夹中压缩一些文件。我已经在我的服务器上保存了许多文件并与一些对象相关联。所以我必须压缩与一个对象相关的所有文件,有点像这样:
- 主文件夹
- 子文件夹
- 另一个文件夹
- XLSX 文件
- 另一个文件夹
- 子文件夹
这是我的层次结构的一个例子。我所做的是我创建了这些文件夹,复制了这些文件夹中的文件并使用以下代码创建了一个 zip:
在 rubyzip 库本身上找到。但是,当我在 Windows 上解压缩此文件并在 Microsoft Excel 中打开它时,出现以下错误:
我们发现“FileName.xlsx”中的某些内容存在问题。您希望我们尽可能多地恢复吗?如果您信任此工作簿的来源,请单击是
按是恢复文件,但我不知道为什么会出现这个错误。我尝试在工作正常的服务器上复制excel文件时打开它,但是一旦压缩和解压缩,就会出现错误。我已经看到了这个主题的一些不同的问题,比如:
由 rubyzip 压缩的 xlsx 无法被 Excel 读取
但没有任何帮助。
我尝试做的更多是设置压缩级别,我尝试将其设置Zlib::DEFAULT_COMPRESSION
为 rubyzip,但尽管如此,我还是遇到了同样的问题。在某些地方,甚至在自述文件中,如果 rubyzip 我发现我们可以使用:
write_buffer
改为使用open
我在这条线上尝试了它(我能找到的最好的):
但它给了我一个不同的例外,所以如果这是解决方案,我不知道如何使用它。
ruby - Rubyzip download attachments without creating the archive
I am using rubyzip
with rails 4
and I am trying to make a custom method to download all the attachments in the submission table without phisically creating the zip file.
submissions_controller.rb
How can I set the file var right. The documentation says that that is the archive name, but I do not want to create that physical archive. Maybe just as a tmp ?
ruby - 尝试读取压缩文件时 ENOENT
我正在编写一个简单的程序,它接受一个输入字符串,将其拆分为单词并将其保存在它的内存中。有三种方法——将字符串保存到内存中、从文件加载和从 zip 存档加载。这是代码:
虽然add
和load_from_file
方法按我load_from_zip
的预期完美运行,但每次我尝试运行它时都会返回以下错误:
尽管该文件存在于我的存档中。对于我做错的任何建议,我将不胜感激