6

バケットをリストできるように機能する接続がありますが、オブジェクトを追加しようとすると問題が発生します。

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
4

5 に答える 5

13

置き換えるだけです:

key = Key(mybucket)

と:

mybucket = "foo"
bucketobj = conn.get_bucket(mybucket)
mykey = Key(bucketobj)

sth のコメントを拡張すると、文字列を渡すことはできません。バケット オブジェクトである必要があります。

于 2012-04-23T21:17:56.190 に答える
6

Keyは、最初のパラメーターとしてバケット オブジェクトを期待します (おそらく によって作成されますconn.create_bucket())。

mybucketバケットではなく文字列のように見えるため、呼び出しは失敗します。

于 2010-08-03T00:46:28.577 に答える
5

これを行う方法は次のとおりです。

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')

ミッチ

于 2012-04-24T12:49:49.593 に答える