zip文件压缩

项目中有需求要把统计的csv文件压缩成zip,并且加密之后发送到指定的邮箱中。
调查发现ruby对于zip的第三方lib没有免费支持这种加密操作的,
一次偶然的机会在php的论坛中发现了灵感,可以直接调用zip命令,呵呵
http://forums.devshed.com/php-development-5/how-to-create-password-protected-zip-files-using-php-550248.html
echo system('zip -P pass file.zip file.txt');
ruby中也可以这么做
示例如下:
zip_filepath = File.join(folder, zip_filename)
csv_filepath = File.join(folder, csv_filename)
log_info "generating csv ..."
export_csv(day)
log_info "zip csv ..."
encrypted_success = system("zip -P 1231456 #{zip_filepath} #{csv_filepath}");
unless encrypted_success
zip_csv(zip_filepath, csv_filepath)
end
log_info "delivering mail ..."
UserNotify.deliver_csv_zip(day, mail_to, zip_filepath)
log_info "Mail with zipfile have deliveried to #{mail_to}"

其次,在不支持zip加密的地方,用ruby的zip库直接生产zip文件
def self.zip_csv(path, filename, day = Date.today)
Zip::ZipFile.open(path, Zip::ZipFile::CREATE) {
|zipfile|
zipfile.add("rate.csv", filename)
}
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值