使用Python的S3Connection()上传本地文件到S3存储桶的方法介绍
发布时间:2024-01-16 16:20:09
使用Python的boto库可以方便地上传本地文件到S3存储桶。首先需要安装boto库:pip install boto。然后在Python脚本中导入boto库的相关模块:
import boto from boto.s3.connection import S3Connection from boto.s3.key import Key
接下来,需要创建一个S3Connection对象来连接到S3服务:
conn = S3Connection(access_key, secret_key)
其中access_key和secret_key是你的AWS访问密钥。
连接成功后,可以通过S3Connection对象来创建一个Bucket对象,指定要上传文件的存储桶:
bucket = conn.get_bucket(bucket_name)
其中bucket_name是你要上传文件的存储桶名称。
然后,可以创建一个Key对象,并通过Key.set_contents_from_filename()方法将本地文件上传到S3存储桶:
k = Key(bucket) k.key = file_name k.set_contents_from_filename(local_path)
其中file_name是上传后文件在S3存储桶中的名称,local_path是本地文件的路径。
完整的代码示例如下:
import boto
from boto.s3.connection import S3Connection
from boto.s3.key import Key
access_key = 'YOUR_ACCESS_KEY'
secret_key = 'YOUR_SECRET_KEY'
bucket_name = 'YOUR_BUCKET_NAME'
file_name = 'YOUR_FILE_NAME'
local_path = 'YOUR_LOCAL_FILE_PATH'
def upload_file_to_s3(access_key, secret_key, bucket_name, file_name, local_path):
conn = S3Connection(access_key, secret_key)
bucket = conn.get_bucket(bucket_name)
k = Key(bucket)
k.key = file_name
k.set_contents_from_filename(local_path)
upload_file_to_s3(access_key, secret_key, bucket_name, file_name, local_path)
上述代码中的YOUR_ACCESS_KEY、YOUR_SECRET_KEY、YOUR_BUCKET_NAME、YOUR_FILE_NAME和YOUR_LOCAL_FILE_PATH需要根据实际情况替换为你自己的AWS访问密钥、存储桶名称、文件名称和本地文件路径。
这样就可以通过Python的S3Connection()上传本地文件到S3存储桶了。
