需求案例:discuz的程序,有大量圖片和附件,現在用的主機性能不足,想使用遠程附件來緩解帶寬不夠用的問題。
方案推薦:cloudflare的對象存儲R2
設置 全部緩存 只要單文件不超過500MB請求就不會計費
網盤和對像存儲都是存儲文件的 各有優缺點 適合的場景也不同
網盤/雲盤 如阿里雲盤 堅果雲 GD OD等,優點:用戶在軟件的可視化界面可以進行上傳下載同步等操作 缺點:可能會有廣告(沒有別的意思為愛發電不不可取),文件分享給他人往往需要對方也下載相應軟件,下載文件可能會限速
對像存儲 R2 b2 scaleway等 優點:文件以直鏈形式傳播 無需下載第三方軟件 基於AWS_S3規範 簡潔易於傳播,比較適合個人網站的圖床或視頻床,支持高並發和高帶寬( 缺點:無可視化界面 需要用戶自己開發
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:規則>頁面規則>https://feixiang.eu.org/i/2022/12/01/m170ry.png (打開查看圖片教程)
R2不支持http 未配置強制跳轉https時訪問未加https可能會打不開
b)緩存所有內容:規則>頁面規則>https://i2.100024.xyz/2022/11/23/ixaf2d.webp
緩存可以存儲到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建議配置e)顯示所有請求IP:安全性>WAF>https://i2.100024.xyz/2022/11/23/k4b0z4.webp
這樣可以在」安全性>概述」看到所有訪問者IP (如圖 https://i2.100024.xyz/2022/11/23/k7oot0.webp),另外推薦一下 可以將r2.smalljp.com換為」包含」主域名smalljp.com 查看所有訪問者IP 並且看到哪些IP被阻擋 為什麼被阻擋
f)屏蔽境外訪問:安全性>WAF>https://i2.100024.xyz/2022/11/23/ka38yi.webp
這個和配置(b)一樣 都是防刷B操作。如需開啟規則(f) 請將(f)放在(e)前 因為匹配規則為優先匹配,我的配置:https://i2.100024.xyz/2022/11/23/kc16p6.webp
g)請求速度限制:安全性>WAF>速率限制規則 這個自己配置吧 也是為了防刷,可以參考:https://hostloc.com/thread-1094822-1-1.html
備選方案:Backblaze B2
|