在 Linux 下安装 rclone 并挂载 cloudflare r2 及相关的常用使用命令。包括能够ls但上传提示403的问题解决。
安装
1 | curl https://rclone.org/install.sh | sudo bash |
配置
创建Key
登录Cloudflare Dashboard后,左侧选Storage & databases,R2 Object Storage,Overview,右下角API Tokens,Manage,点击Create User API Token创建。
然后能拿到一对Access Key ID和Secret Access Key。
配置
rclone config进入交互配置,n创建新配置,s3选择Amazon S3 Compliant Storage Providers,Cloudflare选择Cloudflare,- 输入上面获取到的
access_key_id和secret_access_key, - region填
auto, - endpoint在你获取key的界面有,忘了的话也不要紧,在bucket界面可以看到,去掉后面的bucket名即可,
- 高级设置跳过即可
403问题解决
开启-vv(调试)后可以看到rclone上来会先检测桶存在不存在,不存在的话会新建,但是r2又没有给新建桶的权限(和s3不太一样),就会报403。
1 | root@iZ6we6eiagycug2y8qcx25Z:~# rclone copy install.sh r2:/lxnchan-r2-bucket-main/install.sh -vv |
解决方法的话也很简单,每次上传前添加--s3-no-check-bucket参数或修改配置文件添加:
1 | no_check_bucket = true |
常用命令
- 查看桶内对象
1
2rclone ls r2:lxnchan-r2-bucket-main
rclone lsl r2:lxnchan-r2-bucket-main/path - 查看桶或目录大小
1
rclone size r2:lxnchan-r2-bucket-main/path
- 查看目录结构
1
rclone tree r2:lxnchan-r2-bucket-main
- 上传单个文件到桶根目录
1
rclone copy install.sh r2:lxnchan-r2-bucket-main -P
- 上传到指定目录
1
rclone copy ./dist r2:lxnchan-r2-bucket-main/releases -P
- 上传到精确的对象路径
1
rclone copyto install.sh r2:lxnchan-r2-bucket-main/install.sh -P
- 下载文件
1
rclone copyto r2:lxnchan-r2-bucket-main/install.sh ./install.sh -P
- 下载目录
1
rclone copy r2:lxnchan-r2-bucket-main/releases ./releases -P
- 移动文件或目录
1
rclone move ./dist r2:lxnchan-r2-bucket-main/releases -P
- 删除指定路径下的对象
1
rclone delete r2:lxnchan-r2-bucket-main/releases
- 删除单个对象
1
rclone deletefile r2:lxnchan-r2-bucket-main/install.sh
- 删除整个目录前缀purge 会删除路径下的全部对象,使用前建议先测试:
1
rclone purge r2:lxnchan-r2-bucket-main/releases
1
rclone purge r2:lxnchan-r2-bucket-main/releases --dry-run
- 本地同步到 R2
1
rclone sync ./dist r2:lxnchan-r2-bucket-main/releases --dry-run -P
- 确认无误后执行注意:sync 会删除目标端多余的文件。生产环境建议始终先使用 –dry-run。
1
rclone sync ./dist r2:lxnchan-r2-bucket-main/releases -P
- 比较本地和远程
1
rclone check ./dist r2:lxnchan-r2-bucket-main/releases
- 显示进度
1
-P
- 详细日志
1
-vv

