如何让Zlib压缩到Ruby中的流?

时间:2011-12-09 22:34:53

标签: ruby amazon-s3

我正在尝试使用AWS::S3将文件上传到Amazon S3,但我想先用Zlib压缩它们。 AWS :: S3期望其数据是流对象,即您通常会上传类似

的文件
AWS::S3::S3Object.store('remote-filename.txt', open('local-file.txt'), 'bucket')

(对不起,如果我的术语已关闭;我实际上对Ruby知之甚少。)我知道我可以用类似

的方式对文件进行zlib压缩
data = Zlib::Deflate.deflate(File.read('local-file.txt'))

但是将data作为第二个参数传递给S3Object.store似乎并不像我认为的那样。 (上传很顺利,但是当我尝试从Web浏览器访问该文件时,它无法正确返回。)如何让Zlib缩小为流,或者S3Object.store想要的任何类型的对象?< / p>

1 个答案:

答案 0 :(得分:1)

我认为之前的问题不是我向S3Object.store传递了错误的东西,而是我生成了一个zlib压缩的数据流而没有你通常在{{1}中找到的标题文件。无论如何,以下工作:

.gz