Tag: 解压缩

通过Heroku上托管的Rails上传和解压缩文件到S3?

我希望能够将zip文件上传到包含许多图像的Rails应用程序。 然后我希望Rails解压缩该文件并通过Paperclip将图像内部附加到我的Photo模型中,以便它们最终存储在我的Amazon S3帐户上(通过Paperclip配置)。 我想在Heroku上托管的Rails站点上做这一切,遗憾的是,在Paperclip解析之前暂时不允许任何类型的本地存储(据我所知)暂时解压缩。 我该怎么办?

如何使用rubyzip库获取压缩文件的内容?

我正在尝试提取上传的zip文件并将其内容存储在数据库中,每个文件一个条目。 rubyzip库几乎没有有用的文档。 有一个资产表,其中包含键:字符串(文件名)和数据:二进制(文件内容)。 我正在使用rubyzip库,并且已经做到了这一点: Zip::ZipFile.open(@file_data.local_path) do |zipfile| zipfile.each do |entry| next if entry.name =~ /__MACOSX/ or entry.name =~ /\.DS_Store/ or !entry.file? asset = self.assets.build asset.key = entry.name asset.data = ?? # what goes here? end end 如何设置ZipEntry中的数据? 我必须使用临时文件吗?

为什么hex – > base64与base64 – > hex使用pack和unpack有什么不同?

我得到了这段代码,它从hex转换为base64,反之亦然。 我从另一个SO问题得到了to_base64 ,我写了一些猜测和反复试验的to_hex 。 class String def to_base64 [[self].pack(“H*”)].pack(“m0”) end def to_hex self.unpack(“m0”).first.unpack(“H*”).first end end 但即使在阅读完文档后,我也没有真正理解pack和unpack方法。 具体来说,我对这两种实现之间的不对称感到困惑。 从概念上讲,在这两种情况下,我们采用在某个基数(16或64)中编码的字符串,并且我们希望将其转换为另一个基数。 那么为什么我们to_hex像这样实现to_hex : def to_hex [[self].pack(“m0”)].pack(“H*”) end 或者to_base64使用unpack ? 为什么我们选择的基础完全改变了我们需要用来完成转换的方法?

用ruby解压缩(zip,tar,tag.gz)文件

我想解压缩很多zip文件。 是否有模块或脚本检查zip文件的格式并解压缩? 这应该适用于Linux,我不关心其他操作系统。