cloudflare对象存储R2配置
本文最后更新于 2024-06-06,
若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。
本站只有Telegram群组为唯一交流群组, 点击加入
文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请
原文地址:
https://blog.tanglu.me/cloudflare-R2-configure
前言:
教程试用R2以及支持套CF实现免流的对象存储服务(如b2 scaleway等 具体见带宽联盟),总结了一下如何配置R2
CF带宽联盟:https://www.cloudflare.com/zh-cn/bandwidth-alliance
我想用不支持带宽联盟的怎么办?你可以选择卖房支付高额流量费用!
教程开始之前简单介绍一下我理解的对象存储和云盘(可能很片面 欢迎指正):
网盘和对象存储都是存储文件的 各有优缺点 适合的场景也不同
网盘/云盘 如阿里云盘 坚果云 GD OD等,优点:用户在软件的可视化界面可以进行上传下载同步等操作 缺点:可能会有广告(没有别的意思为爱发电不不可取),文件分享给他人往往需要对方也下载相应软件,下载文件可能会限速
对象存储 R2 b2 scaleway等 优点:文件以直链形式传播 无需下载第三方软件 基于AWS_S3规范 简洁易于传播,比较适合个人网站的图床或视频床,支持高并发和高带宽( 缺点:无可视化界面 需要用户自己开发
各地区文件测速:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
###建议用同区域的vps测速 欧洲东部: wget https://eueast.r2.1323123.xyz/3GB-debian11.qcow2 欧洲西部: wget https://euwest.r2.1323123.xyz/3GB-debian11.qcow2 美国东部: wget https://useast.r2.1323123.xyz/3GB-debian11.qcow2 美国西部: wget https://uswest.r2.1323123.xyz/3GB-debian11.qcow2 亚洲: wget https://asia.r2.1323123.xyz/3GB-debian11.qcow2 Specify jurisdiction EU: wget https://eueu.r2.1323123.xyz/3GB-debian11.qcow2 |
---|
PS:最近用R2明显感觉到晚高峰速度慢等问题,而且非晚高峰用欧洲和美国vps下载速度也才10-25MB/s
今天又开了其他地区的存储桶试了下 发现可能是存储桶地区问题
我的cloudflare注册的是国区账号,他可能默认存在亚洲了,亚洲网络费用大家也都知道,测试速度是其他地区的三分之一
我用wget单线程测试的 欧洲速度在65MB/s左右 美国速度在50MB/s,亚洲存储桶只有10-25MB/s。(可能还有其他我不知道的因素 如vps位置 欧洲美洲非晚高峰 等等)
这里贴一些测试文件供大家测试,如果测试慢的 可以评论区反馈(国内测试就不用了)
建议用R2的朋友都指定下存储桶
正文:
1 开通R2(0元虚拟卡即可),创建存储桶,我这边取名 “tanglu
“
2 添加域名 以下操作基于域名(域名无法自选IP),我以 r2.smalljp.com 为例
3 文件上传 网页端支持300MB以下的文件上传,大于300MB强烈使用rclone上传
rclone简单教程:
rclone1.59版本以上才支持R2
Linux官方脚本:curl https://rclone.org/install.sh | sudo bash
新建rclone配置 我这里取名 myr2
,选择5(AWS S3那个 然后就有R2了)网上很多教程 不继续了
rclone tree myr2:
#有输出桶的文件名表示配置成功
rclone copy -P /root/download myr2:/tanglu
#linux命令 将该文件夹下的所有文件上传 -P参数是显示速度状态
rclone copy -P D:\qbittorrent\Download\HongKongDoll_她的秘密1 myr2:/tanglu
#windows上传命令可能需要代理加速
###以上只是基本的部分上传命令 rclone支持上传/下载/挂载等命令,详情可参考:https://sunpma.com/864.html
4 必须配置
配置只针对r2.smalljp.com,不影响smalljp的其他子域名
a)强制https:规则>页面规则
R2不支持http 未配置强制跳转https时访问未加https可能会打不开
b)缓存所有内容:规则>页面规则
缓存可以存储到CF边缘节点 加快打开速度 大大减少B类操作
不过超过512MB的R2文件 CF 不会缓存(详见 https://developers.cloudflare.com/cache/about/default-cache-behavior)
c)不缓存大于500MB的视频 这个自己配置吧,需要知道的是大于512MB的视频需要增加一条不缓存规则 否则会出现进度条无法拖动或者视频无法播放(感谢@Oracle. 大佬的指导),但是不影响 视频或大于512MB文件的下载,下载速度还是不限速
d)关闭自动程序攻击模式:安全性>自动程序>关闭
不关闭可能会被误判导致无法wget下载(详见 v2ex.com/t/893933 #10楼)
5建议配置
另外推荐一下 可以将r2.smalljp.com换为”contain(包含)”主域名smalljp.com 查看所有访问者IP 并且看到哪些IP被阻挡 为什么被阻挡
这个和配置(b)一样 都是防刷B操作。如需开启规则(f) 请将(f)放在(e)前 因为匹配规则为优先匹配,我的配置
g)请求速度限制:安全性>WAF>速率限制规则 这个自己配置吧 也是为了防刷,可以参考:https://hostloc.com/thread-1094822-1-1.html
删除中途停止导致未完成上传的文件
S3协议未上传完成的文件会消耗存储桶空间(比如上传时ssh突然断开导致上传中止),但是不会在存储桶文件目录显示,这时需要删去
参考:https://rclone.org/oracleobjectstorage/#cleanup
1 2 3 4 5 6 7 8 9 10 |
#列出未完成的上传 rclone backend list-multipart-uploads myr2:tanglu #清除该文件夹一分钟之前还未完成的上传 #-o 是指定时间 1h 2d 3w 4m 等等 rclone backend cleanup -o max-age=1m myr2:tanglu/test |
---|
6杂谈
R2免费套餐:每月10G A类操作前一百万次免费 B类操作前一千万次免费(详见 https://developers.cloudflare.com/r2/platform/pricing)
R2国内速度:R2国外可以跑满 国内似乎也可以跑满?(之前做过一次统计似乎反馈还不错 https://hostloc.com/thread-1093052-1-1.html)
速度似乎不错:CF R2国内流媒体速度测试
支持对象存储的程序:alist rclone nextcloud ,还有什么我也不知道 欢迎大佬补充
R2只支持https访问,使用CDN反代文件记得设置https回源