从S3存储桶下载密钥/文件时出现特殊错误 - [错误1]不允许操作

时间:2014-12-06 05:07:49

标签: python amazon-web-services amazon-s3

我正在使用python脚本获取S3存储桶中的所有文件。相关的代码段如下:

        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/

尽管有错误,但所有目录和文件都已下载。

为什么会这样?除了此桶中发送来自其他存储桶的日志文件之外,它不会发生在任何其他存储桶上。或者它与代码有关?或者对存储桶的权限。它具有默认权限,我没有更改过。

1 个答案:

答案 0 :(得分:1)

考虑到@ pavel_form的建议,我发现了问题。我试图将目录写为文件。修复了使用此块的代码,特别是检查basename是否为空:

            if (not os.path.basename(fname)==""):
                try:
                    f.get_contents_to_filename(fname)
                except OSError,e:
                    print e