云中的Zipfile文件(亚马逊s3),无需先将其写入本地文件(无写权限)

时间:2016-09-20 15:51:57

标签: python-3.x amazon-s3 zipfile

我需要在亚马逊s3中压缩一些文件,而不需要先将它们写入本地文件。理想情况下,我的代码在开发中有效,但我在生产中没有很多写权限。

folder = output_dir
files = fs.glob(folder)
f = BytesIO()
zip = zipfile.ZipFile(f, 'a', zipfile.ZIP_DEFLATED)
for file in files:
    filename = os.path.basename(file)
    image = fs.get(file, filename)

    zip.write(filename)
zip.close()

proplem就在这条生产线上

image = fs.get(file, filename)

因为我没有写权限。 我的最后一招是写入我有权限的/ tmp /目录。 有没有办法从网址路径或直接在云端压缩文件?

1 个答案:

答案 0 :(得分:-1)

我最终使用了python tempfile,最终成为了一个完美的解决方案。

使用NamedTemporaryFile可以保证创建可以自动删除的命名和系统可见临时文件。没有手工工作。