记录一个能够一键下载s3桶文件的jio本

AI 生成的摘要
此内容由 AI 生成
这段Python代码使用boto3库从AWS S3桶中下载非字体文件。首先配置AWS凭证和S3桶信息,创建S3客户端,然后获取S3桶中的所有文件列表。代码会跳过已存在或属于字体文件类型的文件,下载其余文件并存储在本地指定目录中。最后,程序会输出已下载文件的路径,并确认所有文件下载完成。

记录一个能够一键下载s3桶文件的jio本

import boto3
import os

# 配置AWS凭证和S3桶信息
aws_access_key_id = '你的AWS访问密钥ID'
aws_secret_access_key = '你的AWS秘密访问密钥'
bucket_name = '你的S3桶名称'
endpoint_url = '你的S3端点URL'

# 创建S3客户端
s3 = boto3.client(
    's3',
    aws_access_key_id=aws_access_key_id,
    aws_secret_access_key=aws_secret_access_key,
    endpoint_url=endpoint_url
)

# 获取S3桶中的所有文件列表
objects = s3.list_objects_v2(Bucket=bucket_name)

# 创建一个目录来存储下载的文件
download_dir = '下载的文件'
if not os.path.exists(download_dir):
    os.makedirs(download_dir)

# 字体文件的扩展名列表
font_extensions = ['.ttf', '.otf', '.woff', '.woff2', '.eot']

# 下载每个文件
if 'Contents' in objects:
    for obj in objects['Contents']:
        key = obj['Key']
        file_path = os.path.join(download_dir, key)
        
        # 检查文件是否已经存在或是字体文件
        if os.path.exists(file_path):
            print(f'跳过已有文件:{file_path}')
            continue
        
        if any(key.lower().endswith(ext) for ext in font_extensions):
            print(f'跳过字体文件:{file_path}')
            continue
        
        # 创建文件所在的目录(如果不存在的话)
        os.makedirs(os.path.dirname(file_path), exist_ok=True)
        
        # 下载文件
        s3.download_file(bucket_name, key, file_path)
        print(f'已下载文件:{file_path}')
else:
    print('S3桶中没有文件.')

print('所有文件下载完成.')
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...