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功能以編程方式設置主機操作系統?