PicGo图床配置

一、配置

1、插件

  1. 搜s3,下载如下图所示插件

image-20250415141758093

  1. 图床设置 —> Amazon S3 —> 编辑 —> 设为默认图床

image-20250415142122128

  1. 以我的阿里云oss为例:
{
    // 任意名称
    "图床配置名": "augustlee-website-alioss",
    "应用密钥ID": "AccessKey ID",
    "应用密钥": "AccessKey Secret",
    "桶": "bucketName",
    // 你上传文件后的文件路径
    // 规则参考:https://github.com/wayjam/picgo-plugin-s3/blob/main/README.md
    "上传文件路径": "local/{year}/{month}/{md5}.{extName}",
    // Bucket目前有三种访问权限:public-read-write,public-read和private
    "权限": "public-read",
    // 你自己购买服务里看
    "地区": "oss-cn-shanghai",
    "自定义节点": "oss-cn-shanghai.aliyuncs.com",
    // 自己配置自定义域名,记得CNAME
    "自定义域名": "https://resource.augustlee.cn"
    "PathStyleAccess": "阿里云选否,cloudflare可以选是,其他自己摸索"
}

image-20250415142339584

2、软件设置

Typora为例:文件 —> 偏好设置 —> 图像 —> 上传图片(应用规则)—> 设置本地的PicGo路径(选PicGo App)

image-20250415144437954

二、相关配置文件

配置 Configuration

Key 说明 例子
accessKeyID AWS 凭证 ID
secretAccessKey AWS 凭证密钥
bucketName S3 桶名称 gallery
uploadPath 上传路径,详细配置查看以下说明 {year}/{month}/{fullName}
endpoint 指定自定义终端节点 s3.us-west-2.amazonaws.com
proxy 代理地址 支持 http 代理,例如 http://127.0.0.1:1080
region 指定执行服务请求的区域 us-west-1
pathStyleAccess 是否启用 S3 Path style 默认为 false,使用 minio 请设置为 true (e.g., https://s3.amazonaws.com// instead of https://.s3.amazonaws.com/)
rejectUnauthorized 是否拒绝无效 TLS 证书连接 默认为 true,如上传失败日志显示证书问题可设置为 false
acl 访问控制列表,上传资源的访问策略 默认为 public-read, AWS 可选 `private"
outputURLPattern 自定义输出 URL 模板,详细配置查看以下说明 {protocol}://{host}:{port}/{path}
urlPrefix 最终生成图片 URL 的自定义前缀(已废弃,请使用 outputURLPattern) https://img.example.com/my-blog/
urlSuffix 最终生成图片 URL 的自定义后缀(已废弃,请使用 outputURLPattern) ?oxx=xxx
disableBucketPrefixToURL 开启 pathStyleAccess 时,是否要禁用最终生成 URL 中添加 bucket 前缀 (已废弃,请使用 outputURLPattern) 默认为 false

通用占位符 Payload

上传路径自定义输出 URL 模板 支持的通用占位符,插件将会自行用变量替换到实际使用的路径中。

payload 描述
{year} 当前日期 - 年
{month} 当前日期 - 月
{day} 当前日期 - 日
{hour} 当前日期 - 时
{minute} 当前日期 - 分
{second} 当前日期 - 秒
{millisecond} 当前日期 - 毫秒
{timestamp} Unix 时间戳
{timestampMS} Unix 时间戳(毫秒)

上传路径(uploadPath)

支持占位符方式配置,如 {year}/{month}/{md5}.{extName}。除以下列表外,还指出上述通用占位符。

payload 描述
{fullName} 完整文件名(含扩展名)
{fileName} 文件名(不含扩展名)
{extName} 扩展名(不含 .
{md5} 图片 MD5 计算值
{sha1} 图片 SHA1 计算值
{sha256} 图片 SHA256 计算值

自定义输出 URL 模板(outputURLPattern)

支持占位符方式配置,如 {protocol}://{host}:{port}/{path}。除以下列表外,还指出上述通用占位符。

payload 描述 例子
{protocol} 原上传 URL 的协议 httphttps
{host} 原上传 URL 的域名,可不不使用次此变量改为其他自己的反代的域名 example.com
{port} 原上传 URL 的端口 80
{dir} 原上传 URL 的目录 testBucket/2024/12
{path} 原上传 URL 的完整路径 testBucket/2024/12/4aa4f41e38817e5fd38ac870f40dbc70.jpg
{fileName} 文件名(含扩展名) test.jpg
{extName} 扩展名(不含 . jpg
{query} 上传 URL 的 querystirng 部分(不含 ? height=100&width=200
{hash} 上传 URL 的 hash 部分(不含 # abc
{bucket} 上传桶名 testBucket

这个配置将会替代原有的 urlPrefixurlSuffixdisableBucketPrefixToURL 的配置。

另外每个变量都支持正则替换

语法:
{payload:/pattern/reFlag,'replacement'}

比如配置为 {protocol}://example.imgbed/{path:/testBucket/i,'myimage'},如果原URL为 https://cluster-test-1.s3.us-east-001.example.com/testBucket/image.jpg 则会生成 https://example.imgbed/myimage/image.jpg

示例 Example

    "aws-s3": {
      "accessKeyID": "xxx",
      "secretAccessKey": "xxxxx",
      "bucketName": "my-bucket",
      "uploadPath": "{year}/{md5}.{extName}",
      "endpoint": "s3.us-west-000.backblazeb2.com",
      "outputURLPattern": "{protocol}://{host}/{path}"
    }

如果 PicGo 像以上配置,执行上传:picgo upload sample.png,则最终得到图片地址为:https://img.example.com/2021/4aa4f41e38817e5fd38ac870f40dbc70.jpg

Comments