1
我正在使用python腳本獲取S3存儲桶中的所有文件。相關的代碼片段如下:從S3存儲桶下載密鑰/文件的特殊錯誤 - [錯誤1]不允許操作
print ("Downloading files...")
for f in files:
cwd=os.getcwd()
fname=cwd+"/"
fname = fname+f.name
dir = os.path.dirname(fname)
if not os.path.exists(dir):
print dir
os.makedirs(dir)
try:
f.get_contents_to_filename(fname)
except OSError,e:
print e
當我做這個是用來存儲日誌文件水桶,我得到關於該桶中的所有文件夾此錯誤。例如。爲日誌文件夾在這裏:
Downloading files...
/private/tmp/test/logs
[Errno 1] Operation not permitted: '/private/tmp/test/logs/
儘管出現錯誤,所有的目錄和文件被下載。
爲什麼會發生這種情況?它不會發生在任何其他存儲桶上,除了將其他存儲桶的日誌文件發送到的存儲桶之外。或者它與代碼有關?或者存儲桶上的權限。它具有默認權限,沒有任何改變。
基本上,用戶在其下運行你的機器上運行此腳本,沒有權限寫入到目錄/私有的/ tmp /測試/日誌/。您需要檢查該目錄的權限(或所有者)。 – 2014-12-06 09:13:59
我不認爲是這樣。因爲,正如我所說的,當我嘗試將它們下載到同一個目錄中時,它可以很好地與其他具有文件夾的s3存儲桶配合使用。 只有這一個桶似乎有這個問題,它是專門用於轉儲日誌文件的存儲桶。 – 2014-12-06 16:50:22
那麼,你可以通過運行'''result = f.get_contents_as_string()'''來輕鬆地檢查它,並且在實際下載完成後,用open(fname,'w')將內容保存到系統'''中作爲fd: fd.write(result)''',並檢查,哪些操作引發異常。 – 2014-12-06 17:04:52