NoteGen 图片备份到阿里云 OSS 完整攻略
把 NoteGen 笔记里的图片自动上传并备份到阿里云对象存储(OSS),用官方S3 图床模式实现。本攻略重点讲「OSS 控制台从零搭建」,并覆盖 NoteGen 字段填写、常见报错与进阶优化。这个并不只是可以用来搞notegen的图片备份,其实适用所有支持对象存储的md文档编辑器
下载地址
- NoteGen下载地址https://github.com/codexu/note-gen/releases
- 无法连接github可选择其国内官网NoteGen - 开源免费的 AI Markdown 笔记软件
- 夸克网盘地址夸克网盘分享
目录
- 原理与整体流程
- 准备工作与费用
- OSS 控制台从零搭建(重点)
- 在 NoteGen 中配置图床
- 字段对照速查表
- 测试上传与验证
- 进阶优化
- 安全与成本清单
1. 原理与整体流程
NoteGen 的「图床(Image Hosting)」功能在开启后,会把你在笔记里粘贴 / 上传的图片自动存到所选存储,并在正文插入可访问的图片链接。选S3 图床时,官方明确兼容阿里云 OSS(以及腾讯云 COS、七牛云、MinIO 等任意 S3 兼容服务)。
两条链路别混淆NoteGen 里有两个用到 OSS/S3 的地方: ①图床(Image Hosting → S3)—— 本文的主角,负责把单张图片上传成可外链的图片; ②同步(Sync → S3 sync)—— 把整个工作区 / 笔记数据做跨设备同步。 本攻略聚焦「图片备份」,即链路 ①。
四步跑通
- 在阿里云开通 OSS 并建一个 Bucket(选地域、设公共读)。
- 建一个 RAM 子账号并生成 AccessKey,授予该 Bucket 的读写权限。
- 在 NoteGen → 设置 → 图床里选 S3,填入 AccessKey、Bucket、Endpoint、Region 等字段。
- 测试连接 → 保存 → 在笔记里粘图,图片即自动备份到 OSS 并生成链接。
2. 准备工作
- 一个完成实名认证的阿里云账号
- 已安装NoteGen客户端
- 大致理解 OSS 计费:按存储量 + 外网下行流量 + 请求次数扣费。
| 计费项 | 说明 |
|---|---|
| 存储 | 标准 / 低频 / 归档,冷热分层更省 |
| 流量 | 外网下行是主要开销,可用资源包抵扣 |
| 请求 | PUT/GET 次数计费,个人图床基本可忽略 |
⚠️先想清楚“公共读”带来的流量盗刷风险图片要能在笔记里直接显示,Bucket 通常需要「公共读」。公网可访问的图床容易被盗链刷流量。建议后续用CDN + Referer 防盗链或流量封顶控制成本(见第 8 节)。纯自用可先按量付费,量不大时每月成本通常很低。大概充值1元就可以用很久了
3. OSS 控制台从零搭建(重点)
3.1 开通 OSS 服务
- 进入OSS 管理控制台。若首次使用,点击「立即开通」,选择按量付费即可(
- 开通后进入控制台首页,后续所有 Bucket 都在这里管理。
3.2 创建 Bucket(存储图片的“桶”)
在「Bucket 列表 → 创建 Bucket」,关键项这样选:
| 配置项 | 建议值 | 说明 |
|---|---|---|
| Bucket 名称 | notegen-img-自定义后缀 | 全局唯一;只能用小写字母、数字和短横线 -,不能含下划线(否则 S3 虚拟主机寻址会出问题,见排错)。 |
| 地域(Region) | 离你近的,如华北2(北京) | 决定 Endpoint 与 Region 字段值,例如杭州 = cn-beijing。建好后不可改。 |
| 读写权限(ACL) | 公共读 | 图片要在笔记里直接显示就得公共可读。若提示需先关闭「阻止公共访问」,按 3.4 步 操作。 |
| 版本控制 | 可选开启 | 防误删,可恢复历史版本,利于“备份”语义。 |
| 服务端加密 | 可暂不开 | 图片一般无需加密;开 OSS 完全托管即可。 |
3.3 创建 RAM 子账号并拿 AccessKey
强烈不建议用主账号 AccessKey(权限过大、泄露风险高)。用 RAM 子账号: 当然你注册新的AccessKey的时候,阿里云会主动提示你用ram子账户建立
进入RAM 访问控制 → 用户 → 创建用户:登录名如 notegen-oss。
访问方式勾选永久生成AccessKey的选项
🔴Secret 只显示一次,务必当场复制保存。
给该用户授权:最简单授予系统策略 AliyunOSSFullAccess(所有 OSS 读写);想更安全,用下面自定义最小权限。
推荐:只授权这一个 Bucket 的最小权限
创建自定义权限策略,仅允许对目标 Bucket 上传 / 读取 / 列举 / 删除,把 YourBucketName 换成你的桶名:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:PutObject", "oss:GetObject", "oss:DeleteObject", "oss:ListObjects" ], "Resource": [ "acs:oss:*:*:YourBucketName", "acs:oss:*:*:YourBucketName/*" ] } ] }为什么 NoteGen 用长期 AccessKey 而不是 STS阿里云官方文档建议客户端用 STS 临时凭证。但 NoteGen 图床配置的是静态填写的 AccessKey/Secret,所以这里用「RAM 子账号的长期 AccessKey」,并通过最小权限 + 可随时禁用/轮换来控制风险,而不是动用主账号。
3.4 开启“公共读”需先关闭“阻止公共访问”
这里你再注册budget时是无法选择的,注册完自行调整就好
较新的阿里云 OSS 默认开启「阻止公共访问」,会导致公共读设不上 / 匿名访问被拒。做法:
- 在 Bucket →权限控制里,把「阻止公共访问」设为关闭;
- 再把该 Bucket(或对应 Object)的读写权限设为公共读。
⛔安全提醒公共读 = 任何知道链接的人都能访问图片。请不要往这个桶里放任何敏感 / 隐私图片;私密内容请保持私有读并使用签名 URL(NoteGen 直接插的是普通链接,私有桶里图片对读者不会显示)。
3.5 记下这四项,稍后要填进 NoteGen
| 信息 | 示例值 | 去哪看 |
|---|---|---|
| AccessKey ID / Secret | RAM 用户创建时生成 | |
| Bucket 名称 | notegen-img-abc | OSS → Bucket 列表 |
| 地域 ID(Region) | cn-beijnig | Bucket 概览页“地域/Endpoint” |
| Endpoint | oss-cn-beijing.aliyuncs.com | Bucket 概览页“访问Endpoint(公网)” |
概览页会同时列出「公网 Endpoint」「内网 Endpoint」「传输加速 Endpoint」,NoteGen 用公网 Endpoint。
4. 在 NoteGen 中配置图床
- 打开设置 → 图片备份
- 按 第 5 节表格 逐项填写Access Key、Secret Key、Bucket、Region、Endpoint,以及可选的 Custom Domain、Path Prefix。
- 如果上面自动显示了已连接就算成功了。提示成功后,回到笔记里粘贴一张图片,若正文出现形如 https://你的bucket.oss-cn-beijing.aliyuncs.com/... 的链接,即代表备份成功。
Path Prefix(路径前缀)建议这样填填 note-gen 或 note-gen/images,用来在桶里给 NoteGen 的图片单独归一个目录。不要以斜杠开头,也不要带空格。以后清理 / 迁移 / 配 CDN 时按目录管理最省心。
5. 字段对照速查表
左边是 NoteGen 图床界面上的字段名,右边是阿里云 OSS 对应要填的内容(以beijing、桶名 notegen-img-abc 为例)。
| NoteGen 字段 | 含义(官方) | 阿里云 OSS 该填什么 |
|---|---|---|
| Access Key | Access key ID | RAM 用户的 AccessKey ID |
| Secret Key | Secret access key | RAM 用户的 AccessKey Secret |
| Bucket | 桶名 | notegen-img-abc(只填桶名,不带域名) |
| Region | 桶所在地域 | cn-hangzhou(地域 ID,不带 oss- 前缀) |
| Endpoint | S3 兼容服务地址 | oss-cn-beijing.aliyuncs.com;若报签名/寻址错,改用 s3.oss-cn-beijing.aliyuncs.com |
| Custom Domain | 可选 CDN 加速域名 | 绑定了自定义域名/CDN 才填,如 img.yourdomain.com;否则留空 |
| Path Prefix | 桶内组织图片的前缀 | 如 note-gen/images;可留空 |
Endpoint 与 Region 的对应关系当你填写region够,一般会为你自动生成
6. 测试上传与验证
- NoteGen 内测试:图床配置页点「测试连接」,成功即代表 AccessKey / Bucket / Endpoint 三者匹配、可写入。
- 真实粘贴验证:在任意笔记里拖入或粘贴一张图片,稍等正文出现 OSS 图片链接。
- 控制台核对:回 OSS → 文件管理,应能在你设的 Path Prefix 目录下看到刚上传的文件。
- 外链可访问性:把正文里的图片链接复制到无痕浏览器打开——能直接看到图,说明公共读生效、别人也能访问;若 403 AccessDenied,回到 3.4 检查公共读是否真的开启。
图片最终 URL 结构一般是:https://{bucket}.oss-cn-beijnig.aliyuncs.com/{path-prefix}/{文件名};填了 Custom Domain 时则是你的域名开头。
7. 进阶优化
7.1 自定义域名 + CDN 加速(强烈建议)
- 准备一个已备案的域名子域,如 img.yourdomain.com。
- OSS → Bucket →传输管理 → 域名管理绑定自定义域名(或在 CDN 里新建加速域名回源到该 Bucket)。
- 配置HTTPS 证书(可用阿里云免费证书),开启强制 HTTPS。
- 把 NoteGen 的Custom Domain填成 img.yourdomain.com,此后图片链接走你的域名,可防盗链、可缓存。
- 在 CDN 上配置Referer 防盗链白名单与流量封顶,避免公共读图床被盗刷。
7.2 用生命周期规则降本
OSS → 生命周期,把冷门图片自动转储:30 天 → 低频访问、180 天 → 归档。适合“备份为主、偶尔查看”的图片。
7.3 版本控制与备份
- Bucket 开版本控制:误删 / 覆盖后可回滚,真正具备“备份”属性。
- 重要库可用跨区域复制(CRR)把图片同步到另一个地域的桶,做异地容灾。
- 本地仍是主副本:NoteGen 开启图床后本地工作区仍有图片文件,OSS 是云端外链 / 备份,两者不冲突。
7.4 迁移已有笔记图片
若早期图片散在本地,可用「批量上传 / 上传文件夹」把整目录(含你规划好的 note-gen/images 前缀)传进 OSS,再把旧笔记里的相对路径批量替换为 OSS 链接。建议迁移前先本地 ZIP 备份。
8. 安全与成本清单
- 只用RAM 子账号的 AccessKey,不共享、不进 Git 仓库;泄露后立刻在 RAM 里禁用并轮换。
- 尽量用最小权限策略只授权到单个目标 Bucket。
- 公共读桶里不放任何隐私图片;隐私内容保持私有读 + 签名 URL。
- 绑 CDN 后开启Referer 防盗链与用量封顶告警,防流量盗刷。
- 定期看 OSS 账单,量大时购买存储包 / 下行流量包抵扣更省。
- 重要数据开启版本控制,并可配跨区域复制做异地备份。