如何移动cloudflare R2桶里的文件到另一个文件夹?

尝试让ai写了个代码,用的是boto3(python),然而貌似是SSL 验证过不了,一直报错

import boto3
from botocore.config import Config
from tqdm import tqdm

# 设置 R2 端点
s3 = boto3.client(
    's3',
    endpoint_url='https://<ACCOUNT_ID>.r2.cloudflarestorage.com',
    aws_access_key_id='YOUR_ACCESS_KEY',
    aws_secret_access_key='YOUR_SECRET_KEY',
    config=Config(
        signature_version='s3v4',
        region_name='auto'  # 关键!必须设置为 auto
    )
)

bucket = 'your_bucket_name'  # 替换为你的 S3 桶名称
source_dir = 'source-folder/'  # 替换为你的源文件夹路径
target_dir = 'target-folder/'  # 替换为你的目标文件夹路径

# 列出所有文件
paginator = s3.get_paginator('list_objects_v2')
pages = paginator.paginate(Bucket=bucket, Prefix=source_dir)

# 获取所有文件键名
file_keys = []
for page in pages:
    for obj in page.get('Contents', []):
        file_keys.append(obj['Key'])

# 设置进度条
with tqdm(total=len(file_keys), desc="Moving Files", unit="file") as pbar:
    for old_key in file_keys:
        new_key = old_key.replace(source_dir, target_dir, 1)
        
        try:
            # 复制到新位置
            s3.copy_object(
                Bucket=bucket,
                CopySource={'Bucket': bucket, 'Key': old_key},
                Key=new_key
            )
            
            # 打印并更新进度条
            print(f"Successfully copied: {old_key} → {new_key}")
            pbar.update(1)

        except Exception as e:
            # 如果出现错误,显示错误信息
            print(f"Error processing {old_key}: {str(e)}")
            pbar.update(1)  # 即使出错,继续进度条

cloudflare还是太坑了,amazon里面5GB以内的文件都可以在网页直接操作

是的,CloudFlare 的坑比较多。

最近在测试下 NodeJS 的代码的文档。

CloudFlare 也编译了好几次改了又改才成功。

@copy 请问大佬如何给discoures配置Cloudflare R2呀
折腾好久都是报错


区域在 app里面填成自动就行了 其他的应该没有难点