云中的 Zipfile 文件(amazon s3),无需先将其写入本地文件(无写入权限)
Posted
技术标签:
【中文标题】云中的 Zipfile 文件(amazon s3),无需先将其写入本地文件(无写入权限)【英文标题】:Zipfile file in cloud(amazon s3) without writing it first to local file(no write privileges) 【发布时间】:2016-09-20 15:51:56 【问题描述】:我需要在 amazon 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()
问题出在这条生产线上
image = fs.get(file, filename)
因为我没有写权限。 我最后的手段是写入我有权访问的 /tmp/ 目录。 有没有办法从 url 路径或直接在云端压缩文件?
【问题讨论】:
使用的临时文件和命名的临时文件。 【参考方案1】:我最终使用了 python tempfile,它最终成为了一个完美的解决方案。
使用NamedTemporaryFile 让我保证创建可以自动删除的命名和系统可见的临时文件。无需手动操作。
【讨论】:
虽然这可能是解决问题的宝贵提示,但答案确实需要证明解决方案。请edit 提供示例代码来说明您的意思。或者,考虑将其写为评论。以上是关于云中的 Zipfile 文件(amazon s3),无需先将其写入本地文件(无写入权限)的主要内容,如果未能解决你的问题,请参考以下文章