बोटो 3 में, 'Key.set_contents_from_' विधियों को बदल दिया गया था
उदाहरण के लिए:
import boto3
some_binary_data = b'Here we have some data'
more_binary_data = b'Here we have some more data'
# Method 1: Object.put()
s3 = boto3.resource('s3')
object = s3.Object('my_bucket_name', 'my/key/including/filename.txt')
object.put(Body=some_binary_data)
# Method 2: Client.put_object()
client = boto3.client('s3')
client.put_object(Body=more_binary_data, Bucket='my_bucket_name', Key='my/key/including/anotherfilename.txt')
वैकल्पिक रूप से, द्विआधारी डेटा एक फ़ाइल को पढ़ने से आ सकता है, जैसा कि आधिकारिक डॉक्स में बोटो 2 और बोटो 3 की तुलना में वर्णित है :
आकड़ो का भंडारण किया जा रहा हैं
फ़ाइल, स्ट्रीम या स्ट्रिंग से डेटा संग्रहीत करना आसान है:
# Boto 2.x
from boto.s3.key import Key
key = Key('hello.txt')
key.set_contents_from_file('/tmp/hello.txt')
# Boto 3
s3.Object('mybucket', 'hello.txt').put(Body=open('/tmp/hello.txt', 'rb'))