- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我用一些生成的内容创建了一个 zip 文件(换句话说:存档中的文件不存在,内容是在我的脚本中构建的)。
我使用的脚本与此类似:
#~ gem 'rubyzip', '=1.1.0'
require 'zip/zip'
zipname = 'test.zip'
File.delete(zipname) if File.exists?(zipname) #delete previous version
Zip::ZipFile.open(zipname, Zip::ZipFile::CREATE) do |zipfile|
1.upto(100) do |i| #Just some testfiles with content
zipfile.get_output_stream("%08i.txt" % i) do |output_entry_stream| #Filename
output_entry_stream.write("Testcontent %08i" % i) #generated content
end
sleep 1 #sleep some time to see the temporary files
end #testdocs
end #ZipFile.open(zipname)
这很好用,我得到了包含正确数据的 zip。
但是在 zip 创建过程中我有很多临时文件。压缩完成后它们会被删除,但文件在创建过程中会打扰我。如果进程引发异常,那么我必须手动删除它们。
我在 Zip::VERSION 2.0.2 和 1.1.0 中有这种行为(使用 gem rubyzip)
最佳答案
请参阅“How can I generate zip file without saving to the disk with Ruby?”中的答案
我改编了您的示例以证明它有效。
require 'zip/zip'
zipname = 'test.zip'
File.delete(zipname) if File.exists?(zipname) #delete previous version
stringio = Zip::ZipOutputStream::write_buffer do |zio|
1.upto(5) do |i| #Just some testfiles with content
zio.put_next_entry("test#{i}.txt") #Filename
zio.write("Testcontent %08i" % i) #generated content
sleep 1 #sleep some time to see the temporary files
end
end
stringio.rewind #reposition buffer pointer to the beginning
File.new("test.zip","wb").write(stringio.sysread) #write buffer to zipfile
关于ruby - 如何在 ruby 中创建没有临时文件的 zip 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23957178/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!