前言#
上一章我們已經做到了使用 picgo 上傳圖片並獲得一個可以公開訪問的鏈接,這章介紹如何使用 CloudFlare 代理圖片的訪問並加上自定義域名,以及錄屏轉 gif 的應用。
CloudFlare 代理訪問#
創建一個 Cloudflare Workers,代碼如下:
export default {
async fetch(request, env) {
const url = new URL(request.url);
const path = url.pathname.replace('/blog/', '')
const originUrl = `${env.OBJECT_STORAGE_BASE_URL}${path}${url.search}`;
const res = await fetch(originUrl)
return new Response(res.body);
},
};
以上代碼功能是將訪問的 url 去掉存儲桶名稱,通過 workers 獲取內容並返回給訪問者,充當了一個代理的角色,這樣我們可以使用自定義的域名來替代甲骨文對象存儲的訪問域名,以後換了圖床供應商也方便切換,因為博客裡的鏈接是不用改的。
部署完之後需要配置環境變量OBJECT_STORAGE_BASE_URL
的值為上文的訪問地址,一直到/o/
處,如:
現在你可以使用 works 提供的域名作為圖片前綴訪問,也可以自定義域名,該功能只限於你自己的域名是由 CloudFlare 托管解析的才可,如果已經使用 CloudFlare 作為域名解析商,在 works 配置的Custom Domains
配置即可,CloudFlare 會自動生成 Https 證書。
配置好之後將picgo
的配置文件的urlPrefix
改為上面的域名:
{
"aws-sr3": {
"accessKeyID": "{ak}",
"secretAccessKey": "{sk}",
"bucketName": "blog",
"region": "ap-chuncheon-1",
"uploadPath": "images/{year}/{month}/{md5}.{extName}",
"endpoint": "https://{ns}.compat.objectstorage.ap-chuncheon-1.oraclecloud.com/",
"acl": "public-read",
"pathStyleAccess": true,
"urlPrefix": "https://img.linkzz.eu.org",
"disableBucketPrefixToURL": true
}
}
GIF 圖製作#
有時候我們有錄屏製作 gif 的需求,不管你在什麼平台,總有軟件滿足製作 gif 的需求,這裡我只是介紹我的方法,如果你覺得麻煩,以你自己的方法為準。
錄屏#
windows 商店有一個錄屏軟件叫截圖工具
,可以區域錄屏,一般自帶了這個 UWP 程序。
打開他選擇 “視頻” 之後點擊 “新建”,畫出錄屏區域點擊 “開始” 即可對所畫區域錄制,點擊 “結束 “就可以預覽視頻,點擊保存,之後使用 MP4 轉 GIF 工具即可得到 GIF。
MP4 轉 GIF#
我使用的是 ffmpeg + Gifski
ffmpeg#
- ffmpeg - 大名鼎鼎的圖像處理軟件不用我多介紹了吧,使用他可逐幀提取視頻圖片:
ffmpeg -i video.mp4 farme%04d.png
Gifski#
- Gifski - Gifski 是一個開源的視頻轉 GIF 工具,可以生成高質量 GIF,我們使用的是他的命令行版本。
cargo install gifski
或者你可以從 github 的release頁面選擇相應平台的安裝包安裝
使用 ffmpeg 生成的套圖生成 gif:
gifski -o output.gif frame*.png
下面是演示:
這樣就可以將你的 gif 上傳到圖床,通過自己的域名愉快的訪問啦!
結語#
至此 Oracle 對象存儲就算是利用起來了,其免費 20G 的額度對我這種小流量個人博主來說夠用了 (~~~ 其實只是想白嫖~~~),當然目前來看訪問速度作為圖床來看還是太慢了,不過也不要錢,還要啥自行車😂