先看效果:
作为一个专业白嫖党,只使用 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
存储桶 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 上传的方法。