PicGo图床配置
一、配置
1、插件
- 搜s3,下载如下图所示插件

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

- 以我的阿里云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可以选是,其他自己摸索"
}

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

二、相关配置文件
配置 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 的协议 | http 或 https |
{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 |
这个配置将会替代原有的 urlPrefix 、urlSuffix、disableBucketPrefixToURL 的配置。
另外每个变量都支持正则替换
语法:
{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