2015-03-02 237 views
0

我试图用博托代码下载从AWS S3的.zip文件,但得到以下错误:蟒蛇,AWS S3下载的zip文件

“海峡”对象没有属性“写”

代码

s3Conn = S3Connection(aws_access_key_id='ABCD', 
         aws_secret_access_key='xyz') 
s3bucket = s3Conn.get_bucket(mybucket) 

key = s3bucket.new_key("2015/02/20/TestFile.zip") 
try: 
    key.get_contents_to_file(backupdir) 
except: 
    print("{0}".format(sys.exc_info())) 

回答

2

我假定backupdir是字符串,但预计博托文件对象(如open(backupdir)

+1

您可以使用''get_contents_to_filename''作为字符串路径,但它必须是完全限定的路径,而不仅仅是目录的路径。 – garnaat 2015-03-02 15:05:04

+0

谢谢Andrey和garnaat:发布了下面的代码。 – 2015-03-02 15:09:02

0
def downloadBackupFile(backupdir): 
    key = s3bucket.new_key("2015/02/20/TestFile.zip") 
    try: 
     if (os.path.exists(backupdir)): 
     key.get_contents_to_file(open(backupdir + "TestFile.zip", "w+")) 
    except: 
     print("{0}".format(sys.exc_info()))