如果你经常写技术文章,大概率遇到过这个问题:
同一篇文章发布到多个平台,图片却要反复上传。
比如我的真实写作流程:
- 写在 Obsidian 或其他支持 Markdown 的工具
- 发布到公众号
- 同步到知乎 / 博客园 / CSDN / 51CTO / 掘金 / 简书 / 小报童 / InfoQ / SegmentFault 思否
- 再发布到腾讯云、火山引擎、阿里云、华为云、京东云、支付宝等开发者社区
- 还要放到个人博客
结果发现:
❌ 有的平台不识别外链图片
❌ 有的平台会屏蔽第三方图床
❌ GitHub 图床加载慢
❌ 每次重新上传浪费时间
❌ 图片管理完全失控
最崩溃的是:
文章改一次,图片要重新传 N 次
于是我搭建了一套自己的图床方案:
Obsidian + PicGo + 腾讯云 COS
实现效果:
- 粘贴图片自动上传
- 多平台通用链接
- 访问速度稳定
- 支持 HTTPS
- 完全掌控数据
- 一次上传永久可用(前提是存储桶一直开通 😄)
下面一步一步带你搭建,零门槛完成。
一、Obsidian(写作核心)
什么是 Obsidian?
Obsidian 是一款基于 Markdown 的本地知识管理工具,非常适合:
- 技术写作
- 博客创作
- 知识管理
- 文档整理
最大的优势是:
本地文件 + 插件扩展 + 极强的写作体验
下载 Obsidian
官方下载地址:

安装与初始化

安装完成后:
- 创建一个 Vault
- 选择本地目录
- 打开即可开始写作

二、PicGo(图床上传工具)
PicGo 是连接 Obsidian 和 COS 的关键工具。
它负责:
- 上传图片
- 返回链接
- 自动生成 Markdown
- 管理图床
下载 PicGo
官网:
GitHub:
https://github.com/Molunerfinn/PicGo/releases
建议下载客户端版本。

安装步骤
1️⃣ 双击安装包 → 下一步

2️⃣ 选择安装路径

3️⃣ 完成安装

4️⃣ 设置简体中文

5️⃣ 设置默认图床

先不要急着配置 COS,下面先完成腾讯云部分。
三、腾讯云 COS(核心存储)
腾讯云 COS 是我们图床的实际存储空间。
优势:
- 稳定可靠
- 成本极低
- 支持 CDN
- 支持 HTTPS
- 可绑定域名
创建 COS 存储桶
产品页面:
https://cloud.tencent.com/product/cos?Is=sdk-topnav


进入控制台:
https://console.cloud.tencent.com/cos
创建存储桶步骤:
1️⃣ 单击【存储桶列表】
2️⃣ 点击【创建存储桶】
基本配置

访问权限建议选择:
公有读私有写
高级配置(可默认)

确认创建

创建完成后建议:
- 地域选择离自己最近
- 记录 Bucket 名称
- 打开防盗链设置(防止盗刷)
参考文档:
https://cloud.tencent.com/document/product/436/14106
https://cloud.tencent.com/document/product/436/13319
四、创建子用户(安全最佳实践)
不要使用主账号密钥。
进入:
https://console.cloud.tencent.com/cam
添加子用户

创建后记录:
- SecretId
- SecretKey

配置权限组
进入:
https://console.cloud.tencent.com/cam/groups
添加策略(子用户密钥遇到访问等问题可以像博主一样添加下图的3个策略):
QcloudCOSFullAccess
然后把子用户加入用户组。

五、PicGo 配置 COS
回到 PicGo,选择:
腾讯云 COS


关键参数说明:
- COS 版本:V5
- SecretId / SecretKey:子用户密钥
- Bucket:如 article-100101
- AppId:Bucket 名称后缀数字
- 存储区域:如 ap-shanghai
- 存储路径:如 img/
- 自定义域名:填写绑定后的域名(可选)
官方参考:
https://cloud.tencent.com/document/product/436/74373
测试上传
拖一张图片到 PicGo。
成功后会返回链接:
https://你的域名/xxx.png

六、绑定自定义域名(推荐)
默认 COS 域名可以使用,但建议绑定自己的域名。
优势:
- 更专业
- 支持 HTTPS
- SEO 更友好
域名配置入口


绑定证书

申请 SSL 证书
https://console.cloud.tencent.com/ssl/dsc/apply



DNS 解析
添加 CNAME 记录:

参考:
https://cloud.tencent.com/document/product/302/3450
域名检测
https://itango.tencent.com/app/data/huatuo?domain=

七、Obsidian 自动上传配置
打开:
设置 → 第三方插件 → 关闭安全模式 → 浏览插件市场
搜索:
Image auto upload

配置完成后实现:
粘贴图片 → 自动上传 → 返回链接
八、常见问题排查
查看日志
PicGo → 设置 → 日志文件 → 打开日志

1️⃣ 400 错误
AxiosError: Request failed with status code 400
原因:域名解析失败或证书问题。
2️⃣ 403 错误
AxiosError: Request failed with status code 403
原因:权限未配置。

3️⃣ 上传成功但无法访问
检查存储桶权限:
公有读私有写

4️⃣ COS 上传文件后无法访问,怎么办?
表现通常是:
-
PicGo 提示上传成功,但浏览器打开链接 403 / 404
-
或者能打开但部分平台不显示图片
-
或者只有自己能访问,别人访问失败
这个问题一般由下面几类原因导致(基本都能在上面 1/2/3 中对应到):
-
存储桶权限不对:没有设置为「公有读私有写」,导致外网无法读取
-
对象 ACL 或继承权限异常:上传对象继承了私有权限
-
自定义域名 / CDN 配置问题:CNAME 未生效、证书未绑定或 HTTPS 配置异常
-
防盗链(Referer)限制:部分社区请求 Referer 不固定或为空,被拦截
-
路径/链接问题:PicGo 的自定义域名、存储路径配置不一致导致链接拼错
排查建议:
-
先确认 存储桶访问权限 是否是「公有读私有写」
-
检查 防盗链 是否允许空 Referer(或放行对应平台域名)
-
如果用了自定义域名,检查 DNS 解析、证书绑定、HTTPS 是否都正常
-
通过 PicGo 日志 + 控制台访问日志定位具体报错(403/404/5xx)
官方参考(上传/下载与访问排查合集):
https://cloud.tencent.com/document/product/436/30740
最终写作流程
现在我的流程是:
Obsidian 写作
粘贴图片
自动上传 COS
同步多个平台
无论发布到:
- 公众号
- 知乎
- 掘金
- CSDN
- 博客
图片都可以直接使用。
成本分析
- 存储:几毛钱
- 流量:很低
- 域名:可选
- 证书:免费
长期写作几乎可以忽略。
总结
如果你经常:
- 写技术博客
- 多平台发布
- 做知识管理
- 维护个人网站
那么搭建自己的图床几乎是必选项。
它解决的不只是上传问题,而是:
让你的内容资产长期可控。
一次配置,终身受益。