📜  Python3 boto3 put 和 put_object 到 s3 - Python (1)

📅  最后修改于: 2023-12-03 15:34:14.425000             🧑  作者: Mango

Python3 boto3 put和put_object到s3

在Python中使用boto3库可以方便地将数据上传到Amazon S3中。本文将介绍如何使用put()put_object()方法来上传数据到S3。

安装boto3
!pip install boto3
导入boto3
import boto3
Create S3客户端和桶的实例

为了将数据上传到S3中,我们需要创建S3客户端和桶的实例。要创建S3客户端实例,我们需要在boto3中调用client()方法并指定服务、区域等参数。要创建桶的实例,我们需要在boto3中调用bucket()方法并指定要创建的桶的名称。以下是示例代码:

s3_client = boto3.client('s3', aws_access_key_id='your_access_key',
                         aws_secret_access_key='your_secret_key',
                         region_name='your_region')

s3_resource = boto3.resource('s3', aws_access_key_id='your_access_key',
                             aws_secret_access_key='your_secret_key')

bucket_name = 'your_bucket_name'

bucket = s3_resource.Bucket(bucket_name)
put()方法

put()方法是一种将数据上传到S3的简单方法。它需要一个文件名和一个键值。以下是示例代码:

file_name = 'example.txt'
key = 's3_folder/example.txt'

s3_client.put_object(Bucket=bucket_name, Key=key, Body=open(file_name, 'rb'))

上面的代码会将文件上传到名为's3_folder/example.txt'的S3键中。

put_object()方法

put_object()方法比put()方法更灵活。它允许我们指定许多其他的参数,如ACL、ContentType和Metadata等。以下是一个使用put_object()方法将数据上传到S3的示例:

file_name = 'example.txt'
key = 's3_folder/example.txt'

with open(file_name, 'rb') as data:
    s3_resource.Object(bucket_name, key).put(Body=data, ACL='public-read',
                                             ContentType='text/plain',
                                             Metadata={'key1': 'value1', 'key2': 'value2'})

上面的代码将文件上传到名为's3_folder/example.txt'的S3键中,并将它设置为公众读权限,并设置内容类型为'text/plain'。此外,它还将一个名为'key1'和值为'value1',另一个名为'key2'和值为'value2'的元数据添加到对象上。

结论

使用boto3库的put()和put_object()方法可以轻松地将数据上传到Amazon S3,而不需要大量的代码。使用上述示例将文件上传到S3中并设置元数据等参数。