xChar

先看效果:

oracle_photo_blog.gif

作为一个专业白嫖党,只使用Oracle的4个免费鸡怎么能满足呢,拥有20GB免费空间的对象存储当然也要利用起来,正好最近又重拾起了鸽了多年的博客,正好作为博客的图床。

前置条件

  1. 一个Oracle Cloud账号(需要信用卡认证,大陆已经很难申请了)
  2. 良好的科学环境

Oracle Object Storage存储桶准备

  1. 进入Oracle Cloud 对象存储管理界面,创建新的存储桶
    image.png
    默认配置即可,创建完之后编辑可见性,这里可以选择公开或者私有,
    公开:所有文件允许读取
    私有:可使用预先验证的请求实现部分文件公开(推荐这种方式)
    image.png
  2. 创建预先验证的请求
    image.png
    选择具有前缀的对象,前缀填写images,下文配置picgo时需要匹配这个前缀,否则会有权限问题,访问类型默认只读即可,到期时间尽量一步到位多配几年。
    image.png
    将URL复制保存,这即时存储桶相应前缀目录访问的BaseURL
    image.png
    上传一个图片试一下能否访问
    image.png

可以看到由于存储桶的权限设置,使用URL路径访问是行不通的
image.png
需要替换为刚才创建的预见请求的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: 存储桶信息名称空间字段
    image.png

  • region: 这个是你甲骨文账号的区域,通常在你的Oci的console地址里就有体现,如我的春川为ap-chuncheon-1
    image.png

  1. 申请Oracle账户Ak和Sk
    右上角头像,进入“我的概要信息“,”客户密钥“选项”生成密钥“
    image.png
    同样保存已生成密钥,该密钥为账户的SecretAccessKey
    image.png
    AccessKeyID在列表页,同样复制保存
    image.png

安装配置Picgo和s3插件

准备工作完成,下面开始配置图床工具。这里有两种选择:

  1. 具有GUI界面:PicGo
  2. Cli命令行操作:PicGo-Core
    上面两种看个人喜好,我比较习惯命令行,所以选择第二种,配置方面都是一样的,区别为是否提供了GUI,

安装Node环境

自行按nodejs官网安装

安装Picgo-Core

npm install picgo -g

或者使用Yarn

yarn global add picgo

验证安装

picgo -h

出现以下结果表明安装成功
image.png

添加S3插件

s3插件理论上支持所有兼容S3API的对象存储,具体参看插件主页

picgo add s3

安装成功之后配置文件含有以下信息
image.png

配置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

上传剪贴板图片

image.png

访问图片链接成功
image.png
到此就实现图床最基本的功能了,搭配任意编辑器都可使用图床了,只是稍显麻烦,如果在编辑器中复制上传,成功后即刻显示图片体验会更好。下面我们使用Obsidian搭配对应插件实现上面功能。

安装配置Obsidian

下载安装Obsidian

关闭安全模式搜索”Image auto upload Plugin“插件安装
image.png

插件配置
image.png
默认上传器选择PicGo-Core

结语

至此使用Oracle作为对象存储教程已经完成,但是还是有些缺陷,如图片访问效果不理想,因为甲骨文的对象存储不支持cdn,导致不同区域访问效果不同。下一章我们使用CloudFlare加速我们的图片访问,以及特殊情况下制作GIF上传的方法。

Loading comments...