要将本地项目文件直接部署到 Cloudflare R2,您可以使用 AWS SDK for Python(Boto3)来编写脚本,或者使用像 aws-cli 这样的工具来批量上传文件和文件夹。
以下是使用 Boto3 和 aws-cli 的方法:
使用 Boto3 的方法
-
安装 Boto3 库:
pip install boto3 -
配置 Boto3: 创建或编辑
~/.aws/credentials文件,添加您的 Cloudflare R2 的 Access Key 和 Secret Key:[default] aws_access_key_id = YOUR_ACCESS_KEY aws_secret_access_key = YOUR_SECRET_KEY创建或编辑
~/.aws/config文件,添加您的 R2 的配置:[default] region = auto endpoint_url = https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com -
编写脚本上传文件夹和文件:
import boto3
import os
# 设置S3客户端
s3_client = boto3.client(
's3',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY',
endpoint_url='https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com',
region_name='auto'
)
# R2存储桶名称
bucket_name = 'your-bucket-name'
# 本地项目路径
local_dir = '/path/to/local/project'
def upload_files(local_dir, bucket_name):
for root, dirs, files in os.walk(local_dir):
for file in files:
local_file_path = os.path.join(root, file)
relative_path = os.path.relpath(local_file_path, local_dir)
s3_file_key = relative_path.replace("\\", "/") # 替换路径分隔符以适应S3
# 上传文件
s3_client.upload_file(local_file_path, bucket_name, s3_file_key)
print(f'Uploaded {local_file_path} to s3://{bucket_name}/{s3_file_key}')
# 调用上传函数
upload_files(local_dir, bucket_name)
使用 aws-cli 的方法
-
安装 AWS CLI:
pip install awscli -
配置 AWS CLI: 使用
aws configure配置您的 Cloudflare R2 凭证和配置:aws configure需要输入您的 Access Key、Secret Key、默认区域(可以是
auto),以及默认输出格式(可以是json)。 -
上传文件夹和文件: 使用
aws s3 cp命令递归上传整个目录到 R2:aws s3 cp /path/to/local/project s3://your-bucket-name --recursive --endpoint-url=https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com
注意事项
- 路径配置:确保路径配置正确,包括本地路径和 R2 存储桶路径。
- 权限:确保您的 Cloudflare R2 的 Access Key 和 Secret Key 具有上传文件到指定存储桶的权限。
- 依赖项:如果使用 Boto3,请确保已安装所需的依赖项,并在脚本中正确引用它们。
通过上述方法,您可以轻松地将本地项目文件批量上传到 Cloudflare R2 存储。