2010-08-03 30 views
5

मेरे पास एक कनेक्शन है जो काम करता है क्योंकि मैं बाल्टी सूचीबद्ध कर सकता हूं, लेकिन ऑब्जेक्ट जोड़ने की कोशिश करते समय समस्याएं हो रही हैं।पायथन का उपयोग करते हुए पायथन एस 3 कहता है, 'विशेषता त्रुटि:' str 'ऑब्जेक्ट में कोई विशेषता नहीं है' कनेक्शन '

'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 

उत्तर

5

Key अपनी पहली पैरामीटर के रूप में एक बाल्टी वस्तु (संभवतः conn.create_bucket() द्वारा बनाई गई) को उम्मीद है

conn = S3Connection(awskey, awssecret) 

key = Key(mybucket) 

key.key = p.sku 
key.set_contents_from_filename(fullpathtofile) 

मैं त्रुटि मिलती है।

ऐसा लगता है कि mybucket एक बाल्टी नहीं है, लेकिन एक स्ट्रिंग है, इसलिए कॉल विफल हो जाती है।

+0

धन्यवाद, वह था। btw k.set_acl ('public-read') काम नहीं करता है, क्या मुझे कुछ याद आ रही है? – Blankman

+0

@blank: 'set_acl' के बारे में कोई जानकारी नहीं – sth

13

बस की जगह:

key = Key(mybucket) 

साथ:

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

sth की टिप्पणी पर विस्तार, आप एक स्ट्रिंग पारित नहीं हो सकता है, यह एक बाल्टी वस्तु की जरूरत है।

6

यहाँ मैं यह कैसे करना होगा है:

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

मिच

0

आयात boto3

S3 = boto3.resource ('S3')

mybucket = s3.Bucket (' mybucketName ')

अब आपको एस 3 बाल्टी ऑब्जेक्ट मिलेगा। आप स्ट्रिंग प्राप्त कर रहे थे।

का आनंद लें!

संबंधित मुद्दे

 संबंधित मुद्दे