前言: 新浪圖床徹底掛了...準備轉投自建存儲。 存儲:Cloudflare R2R2提供了相對低廉的價格和0流量費用,如圖。 前端:Picgo(畢竟不能手搓S3 API吧 Picgo是Github上熱門的圖床軟件,項目地址可見: 流程:1.安裝Picgo及Node.js請參閱Picgo項目地址 2.啟用CF-R2,不再贅述(可能需要準備一張信用卡/Visa Master借記卡亦可) 3.新建一個儲存桶4.創建完成後,回到Overview,點擊 “Manage R2 API Token” ,Create API Token注意,API需要Edit權限 會生成一個 Access Key ID和 Secret Access Key請保留備用 5.為CFR2綁定自定義域名:進入你創建的存儲桶(Bucket),點擊設置(Setting) 在PublicAccess裡面,選擇Connect 輸入一個子域名即可,需要注意的是,你的域名必須託管在Cloudflare上。Cloudflare會自動添加解析。(你也可以使用R2.dev域名,但是R2.dev域名具有請求速率限制,也不適用於緩存和安全性,不建議生產環境使用)。 注意,請設置CORS Policy,以允許外部調用。(CF的意思是直接啟用Public Access亦可實現目的)在我初次撰稿時,cf尚未提供此選項,我需要調整存儲桶的對應域的改寫規則,利用Cloudflare的規則修改HTTP相應頭,加入一個 Access-Control-Allow-Origin * header 來允許任意源的加載 現在R2存儲桶好像支持直接修改CORS了,點擊edit即可 - [
- {
- "AllowedOrigins": [
- "*"
- ],
- "AllowedMethods": [
- "GET"
- ]
- }
- ]
複製代碼注意,配置成*會允許任意來源的加載,這是不安全的,在生產環境中,你還應該加入鑑權等。 但是個人存個圖片而已,問題不大。 隨後進入Picgo軟件,安裝S3插件 進入Amazon S3,進行設置 把上面生成的 Access Key ID 填入 應用密鑰ID;Secret Access Key 填入 應用密鑰 桶就是bucket名,直接填寫即可 文件路徑實際上也包含重命名規則,可按如下格式填寫 [td]payload | 描述 | {year} | 當前日期 - 年 | {month} | 當前日期 - 月 | {day} | 當前日期 - 日 | {fullName} | 完整文件名(含擴展名) | {fileName} | 文件名(不含擴展名) | {extName} | 擴展名(不含.) | {md5} | 圖片 MD5 計算值 | {sha1} | 圖片 SHA1 計算值 | {sha256} | 圖片 SHA256 計算值 |
地區填寫 us-east-1 切記,必填 (2023.5.23更新,cf好像增加了存儲桶的地域選擇,這個請參照實際文檔吧) “自定義節點”填寫 框內的一串鏈接,你可以輕易的在R2頁面找到,也被描述為“S3 API”。 建議綁定自定義域名。
自定義域名填寫你在cloudflare R2裡面設置的自定義域名,也可填寫CF提供的Public Bucket URL,不要忘記開頭的 https:// (末尾無需“/”) 開啟“BucketEndpoint”功能, 意為針對Bucket的Endpoint,而非針對API的Endpoint。
R2桶本質上和S3是相似的,還有很多操作(比如設置鑑權等)也可以一併完成。
|