标签: gzipfile

如何使用boto上传到s3时进行gzip

我有一个大的本地文件.我想使用该boto库将该文件的gzip压缩版本上传到S3 .该文件太大,无法在上载之前在磁盘上高效地进行gzip,因此在上传过程中应该以流式方式对其进行gzip压缩.

boto库知道一个函数set_contents_from_file(),它需要一个类似文件的对象.

gzip库知道GzipFile可以通过名为的参数获取对象的类fileobj; 它会在压缩时写入此对象.

我想结合这两个函数,但是一个API想要自己阅读,另一个API想要自己编写; 既不知道被动操作(如写入或被读取).

有没有人知道如何以工作方式结合这些?

编辑:我接受了一个答案(见下文),因为它暗示我要去哪里,但如果你有同样的问题,你可能会发现我自己的答案(也在下面)更有帮助,因为我实现了一个使用分段上传的解决方案.

python gzip amazon-s3 boto gzipfile

12
推荐指数
3
解决办法
7440
查看次数

如何迭代/流式传输 gzip 文件(包含单个 csv)?

如何遍历包含单个文本文件 (csv) 的 gzip 文件?

搜索 crates.io 我发现flate2有以下解压代码示例:

extern crate flate2;

use std::io::prelude::*;
use flate2::read::GzDecoder;

fn main() {
    let mut d = GzDecoder::new("...".as_bytes()).unwrap();
    let mut s = String::new();
    d.read_to_string(&mut s).unwrap();
    println!("{}", s);
}
Run Code Online (Sandbox Code Playgroud)

如何流式传输 gzip csv 文件?

csv gzip rust gzipfile

3
推荐指数
1
解决办法
2338
查看次数

python'function'对象没有属性'GzipFile'

我为压缩文件编写了一个函数如下:

def gzip(filename):
    '''Gzip the given file and then remove original file.'''
    r_file = open(filename, 'r')
    w_file = gzip.GzipFile(filename + '.gz', 'w', 9)
    w_file.write(r_file.read())
    w_file.flush()
    w_file.close()
    r_file.close()
    os.unlink(filename) 
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的程序时,我收到错误:

'function'对象没有属性'GzipFile'.

我做错了什么?先谢谢!

python attributes gzip object gzipfile

1
推荐指数
1
解决办法
1316
查看次数

标签 统计

gzip ×3

gzipfile ×3

python ×2

amazon-s3 ×1

attributes ×1

boto ×1

csv ×1

object ×1

rust ×1