关于python:我可以在Google App Engine中设置动态生成的zip文件内容的权限吗?

Can I set the permissions of the contents of a dynamically generated zip file in Google App Engine?

在我的应用引擎脚本(使用 Python API)中,我使用此代码动态生成 zip 文件并将它们提供给用户。当我下载并解压缩生成的 zip 文件并运行 OS X 时,从存档中提取的每个文件的权限都是 0,这迫使我对它们进行 chmod。我宁愿不让我的用户也这样做。有没有办法解决这个问题?


是的,请参阅 Python zipfile 模块的文档。具体来说,writestr方法的签名,即:

ZipFile.writestr(zinfo_or_arcname,
bytes[, compress_type])

第一个参数可以是文件名或 ZipInfo 对象,它允许您指定有关要存储的文件的信息。我相信要设置以更改文件权限的相关字段是 external_attr,但可能需要进行一些读取现有 zip 文件的实验来确定这一点。