1
由于未知原因,Amazon的Lambda服务需要在我们上传的ZIP文件中设置本地库的权限。这在Windows中并不容易。在Python生成的ZIP文件中更改主机操作系统
我发现了一些Python代码,并适应它来设置764个权限我需要:
import zipfile
import os
srcFileName = os.getcwd() + '\\bin\\Release\\netcoreapp1.0\\input.zip'
tmpFileName = os.getcwd() + '\\bin\\Release\\netcoreapp1.0\\publish.zip'
with zipfile.ZipFile(srcFileName, 'r') as sz:
with zipfile.ZipFile(tmpFileName, 'w', zipfile.ZIP_DEFLATED) as z:
for name in sz.namelist():
srcFile = sz.open(name, "r")
print(name)
zi = zipfile.ZipInfo(name)
zi.external_attr = (0o764 << 16)
z.writestr(zi, sz.read(name))
z.close()
sz.close()
但后来我打问题二:ZIP文件存储的文件添加到归档主机OS (规格在这里:http://www.fileformat.info/format/zip/corion.htm)
单独设置权限不会被Amazon接受。如果我十六进制编辑压缩文件并将操作系统从Windows更改为Unix,则该权限将被Amazon接受。
有没有什么办法可以使用Python zip功能以编程方式设置主机操作系统?