我需要在亚马逊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 /目录。 有没有办法从网址路径或直接在云端压缩文件?
答案 0 :(得分:-1)
我最终使用了python tempfile,最终成为了一个完美的解决方案。
使用NamedTemporaryFile可以保证创建可以自动删除的命名和系统可见临时文件。没有手工工作。