欢迎访问宙启技术站
智能推送

使用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_keysecret_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_KEYYOUR_SECRET_KEYYOUR_BUCKET_NAMEYOUR_FILE_NAMEYOUR_LOCAL_FILE_PATH需要根据实际情况替换为你自己的AWS访问密钥、存储桶名称、文件名称和本地文件路径。

这样就可以通过Python的S3Connection()上传本地文件到S3存储桶了。