先看效果:
作為一個專業白嫖黨,只使用 Oracle 的 4 個免費雞怎麼能滿足呢,擁有 20GB 免費空間的對象存儲當然也要利用起來,正好最近又重拾起了鴿了多年的博客,正好作為博客的圖床。
前置條件#
- 一個 Oracle Cloud 帳號(需要信用卡認證,大陸已經很難申請了)
- 良好的科學環境
Oracle Object Storage 存儲桶準備#
- 進入 Oracle Cloud 對象存儲管理界面,創建新的存儲桶
默認配置即可,創建完之後編輯可見性,這裡可以選擇公開或者私有,
公開:所有文件允許讀取
私有:可使用預先驗證的請求實現部分文件公開(推薦這種方式)
- 創建預先驗證的請求
選擇具有前綴的對象,前綴填寫images
, 下文配置 picgo 時需要匹配這個前綴,否則會有權限問題,訪問類型默認只讀即可,到期時間儘量一步到位多配幾年。
將 URL 複製保存,這即時存儲桶相應前綴目錄訪問的 BaseURL
上傳一個圖片試一下能否訪問
可以看到由於存儲桶的權限設置,使用 URL 路徑訪問是行不通的
需要替換為剛才創建的預見請求的 URL 前綴
https://objectstorage.ap-chuncheon-1.oraclecloud.com/p/xxx/n/{namespace}/b/blog/o/images/2022-05-23.png
3. 存儲桶 Endpoint
甲骨文的對象存儲 endpoint 模式為https://{namespace}.compat.objectstorage.{region}.oraclecloud.com/
-
namespace: 存儲桶信息名稱空間字段
-
region: 這個是你甲骨文帳號的區域,通常在你的 Oci 的 console 地址裡就有體現,如我的春川為
ap-chuncheon-1
- 申請 Oracle 賬戶 Ak 和 Sk
右上角頭像,進入 “我的概要信息 “,” 客戶密鑰 “選項” 生成密鑰 “
同樣保存已生成密鑰,該密鑰為賬戶的SecretAccessKey
AccessKeyID
在列表頁,同樣複製保存
安裝配置 Picgo 和 s3 插件#
準備工作完成,下面開始配置圖床工具。這裡有兩種選擇:
- 具有 GUI 界面:PicGo
- Cli 命令行操作:PicGo-Core
上面兩種看個人喜好,我比較習慣命令行,所以選擇第二種,配置方面都是一樣的,區別為是否提供了 GUI,
安裝 Node 環境#
自行按nodejs官網安裝
安裝 Picgo-Core#
npm install picgo -g
或者使用 Yarn
yarn global add picgo
驗證安裝
picgo -h
出現以下結果表明安裝成功
添加 S3 插件#
s3 插件理論上支持所有兼容 S3API 的對象存儲,具體參看插件首頁
picgo add s3
安裝成功之後配置文件含有以下信息
配置 s3 插件#
{
"picBed": {
"uploader": "aws-s3",
"current": "aws-s3",
"aws-s3": {
"accessKeyID": "{ak}",
"secretAccessKey": "{sk}",
"bucketName": "{bucket}",
"region": "{region}",
"uploadPath": "images/{year}/{month}/{md5}.{extName}",
"endpoint": "https://{namespace}.compat.objectstorage.{region}.oraclecloud.com/",
"acl": "public-read",
"pathStyleAccess": true,
"urlPrefix": "https://objectstorage.ap-chuncheon-1.oraclecloud.com/p/{publicKey}/n/{namespace}/b/blog/o",
"disableBucketPrefixToURL": true
}
},
"picgoPlugins": {
"picgo-plugin-s3": true
}
}
上面配置除了uploadPath
字段,其他地方的佔位符號 "{}" 應替換為相應值:
- ak: 上文申請的甲骨文帳號
AccessKeyID
- sk: 上文申請的甲骨文帳號
SecretAccessKey
- bucket: 桶名稱,我的這裡就是
blog
- region: 上文獲取的
region
區域,我這裡是ap-chuncheon-1
- uploadPath 的佔位符不需要修改,且注意前綴 images 一定要匹配上文
預先驗證的請求
處的前綴 - namespace: 上文獲取的 namespace
- urlPrefix: 這個字段為
預先驗證的請求
處申請的 URL 前綴 - disableBucketPrefixToURL: 這個字段必須為 true, 否則上傳鏈接自動添加桶前綴導致訪問失敗,具體可看這個Issue
驗證配置#
截圖工具隨意截圖到剪貼板
picgo upload
上傳剪貼板圖片
訪問圖片鏈接成功
到此就實現圖床最基本的功能了,搭配任意編輯器都可使用圖床了,只是稍顯麻煩,如果在編輯器中複製上傳,成功後即刻顯示圖片體驗會更好。下面我們使用 Obsidian 搭配對應插件實現上面功能。
安裝配置 Obsidian#
下載安裝Obsidian
關閉安全模式搜索”Image auto upload Plugin“插件安裝
插件配置
默認上傳器選擇PicGo-Core
結語#
至此使用 Oracle 作為對象存儲教程已經完成,但是還是有些缺陷,如圖片訪問效果不理想,因為甲骨文的對象存儲不支持 cdn,導致不同區域訪問效果不同。下一章我們使用 CloudFlare 加速我們的圖片訪問,以及特殊情況下製作 GIF 上傳的方法。