PicGo Enhanced 多吉云(dogecloud)上传插件。支持 PicGo GUI 。
多吉云(dogecloud)云存储使用的是腾讯云COS或阿里云OSS作为存储空间的底层服务,支持AWS S3 SDK上传。由于并非自家开发的底层存储服务,所以相较于通用的AWS S3 SDK上传,要多传输一个临时。而现有的picgo-plugin-s3无法直接使用,因此拿来小小改了一下,感谢前任开发者wayjam。sessionToken
关于此插件的详细说明可见《PicGo插件:上传到多吉云存储》。
特别感谢开发者@mingxuan对本插件的杰出贡献,从而大大简化了使用本插件的流程。
特别感谢开发者@dwxh对插件适配新版picgo-core的巨大帮助。
使用本插件的必需条件是,你首先应当创建一个标准存储空间,因为只有标准存储才支持 SDK 操作。
1.在密钥管理页面获取AccessKey和SecretKey;
2.在云存储中选择对应的空间列表,点击右侧SDK参数,记录s3Bucket;
| Key | 说明 | 例子 |
|---|---|---|
AccessKey | 用户AccessKey | 1v80b5xxxxx9sc9b0 |
SecretKey | 用户SecretKey | 6adcaf272xxxxxxxx52f26ddsad244cb |
bucketName | s3bucket | s-gz-2384-xxxxxxx |
urlPrefix | 存储空间绑定的CDN域名(支持多域名,逗号分隔) | https://img1.example.com, https://img2.example.com |
uploadPath | 上传路径 | {year}/{month}/{uuid}.{extName} |
urlSuffix | 自定义后缀 | /shuiyin |
addMetadata | 是否在上传时添加 MD5 等元数据 | true |

上传路径为空则默认以原始文件名上传到根目录,如指定目录则必需添加 payload:
| payload | 描述 |
|---|---|
{year} | 当前日期 - 年 |
{month} | 当前日期 - 月 |
{day} | 当前日期 - 日 |
{fullName} | 完整文件名(含扩展名) |
{fileName} | 文件名(不含扩展名) |
{extName} | 扩展名(不含.) |
{md5} | 图片 MD5 计算值 |
{sha1} | 图片 SHA1 计算值 |
{sha256} | 图片 SHA256 计算值 |
{uuid} | 唯一标识符(UUID v4) |
GUI端配置参考上方"配置",忽略此项。
"dogecloud-v2": {
"AccessKey": "xxxxxxx",
"SecretKey": "xxxxxxxxxxxx",
"bucketName": "s-gz-2384-xxxxxxx",
"uploadPath": "{year}/{uuid}.{extName}",
"urlPrefix": "https://img1.example.com, https://img2.example.com",
"addMetadata": true
}
如果 PicGo 像以上配置,执行上传:picgo upload sample.png,则最终得到图片地址为:https://img1.example.com/2022/123e4567-e89b-12d3-a456-426614174000.png
当启用 addMetadata 选项时,插件会在上传时为每个文件添加以下元数据:
md5: 文件的 MD5 哈希值timestamp: Unix 时间戳set: 标记为已设置元数据这些元数据可以通过 S3 兼容的客户端或 API 查询,便于文件管理和验证。
上传时自动为每个文件添加以下元数据:
x-amz-meta-md5: 文件的 MD5 哈希值x-amz-meta-timestamp: Unix 时间戳x-amz-meta-set: 标记为已设置元数据{uuid} 占位符,每次上传生成唯一标识符{year}/{month}/{uuid}.{extName}urlPrefix 支持多个域名,用英文逗号分隔https://img1.example.com, https://img2.example.cominline; filename="原始文件名"12/04/2025 已解决此前所有遗留的问题,更新了 aws-sdk 的版本。
v3.6.0 更新内容:
addMetadata 配置选项,用户可选择是否启用元数据功能dogecloud-v2,避免与原版插件冲突With the following command, a versioned commit which modifies the version of package.json would be genereated and pushed to the origin. Github Action will automatically compile this pacakage and publish it to NPM.
npm run patch npm run minor npm run major
Released under the MIT License.