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