您可以使用AWS SDK(如Python的boto3库)来实现仅上传所有zip文件到AWS S3存储桶。以下是一个示例代码:
import boto3
import os
# 创建S3客户端
s3 = boto3.client('s3')
# 指定要上传的本地目录
local_directory = '/path/to/local/directory'
# 指定要上传到的S3存储桶
bucket_name = 'your-bucket-name'
for root, dirs, files in os.walk(local_directory):
for file in files:
if file.endswith('.zip'):
# 构造S3对象键(相对于存储桶的根目录)
s3_key = os.path.join(root, file).replace(local_directory, '').lstrip('/')
# 上传文件到S3存储桶
s3.upload_file(os.path.join(root, file), bucket_name, s3_key)
请确保您已经正确安装了boto3库,并替换/path/to/local/directory
为您要上传的本地目录的路径,以及your-bucket-name
为您的S3存储桶的名称。
该代码使用os.walk
函数遍历指定的本地目录,并使用file.endswith('.zip')
条件筛选出所有以.zip
结尾的文件。然后,它使用os.path.join
构造S3对象键,并使用lstrip('/')
删除路径中的前导斜杠。最后,使用s3.upload_file
方法将文件上传到指定的S3存储桶。
请注意,该代码不会递归上传子目录中的zip文件,如果您需要递归上传,请将os.walk
替换为递归函数。