python s3使用boto,说'属性错误:'str'对象没有属性'连接'
问题描述:
我有一个连接工作,因为我可以列出桶,但尝试添加对象时有问题。python s3使用boto,说'属性错误:'str'对象没有属性'连接'
conn = S3Connection(awskey, awssecret)
key = Key(mybucket)
key.key = p.sku
key.set_contents_from_filename(fullpathtofile)
我得到错误:
'attribute error: 'str' object has no attribute 'connection'
误差文件中:
/usr/local/lib/python2.6/dist-package/boto-2.obl-py2.6.egg/boto/s3/key.py' line # 539
答
Key
期望的铲斗对象作为其第一个参数(可能由conn.create_bucket()
创建)。
看起来像mybucket
不是一个桶,而是一个字符串,所以调用失败。
答
只需更换:
key = Key(mybucket)
有:
mybucket = "foo"
bucketobj = conn.get_bucket(mybucket)
mykey = Key(bucketobj)
扩大对某事的评论,你不能传递一个字符串,它需要一个水桶对象。
答
这是我会怎么做:
import boto
s3 = boto.connect_s3()
bucket = s3.get_bucket("mybucketname")
key = bucket.new_key("mynewkeyname")
key.set_contents_from_filename('path_to_local_file', policy='public-read')
米奇
答
进口boto3
S3 = boto3.resource( 'S3')
mybucket = s3.Bucket(” mybucketName')
现在您将获得s3存储桶对象。你得到的字符串。
享受!
谢谢,就是这样。 btw k.set_acl('public-read')不起作用,我错过了什么? – Blankman 2010-08-03 01:17:41
@blank:不知道有关'set_acl' – sth 2010-08-03 01:21:40