Ali ImgBed
一个轻量的自托管图片上传工具。用户先在自己的浏览器登录阿里云开发者社区,再把登录请求中的 Cookie 粘贴到本项目,由服务端调用阿里云图片接口获取上传地址并返回 CDN 链接。
开源地址:https://cnb.cool/qiqinb/alicdn-imgbed
该项目仅为开发测试用途,个人日常普通使用图床(如:上传一张合规的背景图片 用于博客)是被允许的,但请勿滥用阿里云服务、批量灌入内容、上传违法违规内容,或将本项目用于违反阿里云服务条款和当地法律法规的用途。由使用者自行承担账号、Cookie、内容、流量和合规风险,笔者(开发者)不承担任何相关责任,若您不同意此说明 请勿使用
Cookie 只提交到你当前访问的这个服务端,不会发送给项目作者或项目内置的其他第三方服务;服务端不会把 Cookie 写入磁盘或日志,重启后会清除。
为了获取上传地址,服务端必须把必要 Cookie 发送给阿里云官方接口;图片本身也会上传到阿里云 CDN,因此无法承诺“绝对安全”或“完全不进行远程上传”。介意请勿使用
功能
- 用户在自己的浏览器完成阿里云登录、MFA 和安全验证
- 页面粘贴完整 Cookie,服务端只做格式校验并保存在进程内存
- Cookie 失效时提示重新登录并粘贴
- 支持常见图片格式,单文件上限 20 MB
- 返回阿里云 CDN 图片直链
- 可复制直链、Markdown 和 HTML,或直接打开图片
- 上传历史支持搜索、统计和撤销清空,仅保存在浏览器
localStorage - 使用
vue-sonner实时反馈 Cookie 校验、选择、上传和复制状态
Referer 限制:嵌入图片必须使用 no-referrer
ucc.alicdn.com 会校验请求的 Referer。如果直接把 CDN 图片嵌入其他网站,浏览器可能因为携带来源地址而加载失败。页面需要禁止发送 Referer,并建议在 <img> 上再次声明:
<meta name="referrer" content="no-referrer">
<img
src="https://ucc.alicdn.com/your-image.jpg"
referrerpolicy="no-referrer"
alt=""
>项目预览已经内置 referrerpolicy="no-referrer",并为预览地址增加缓存参数,避免浏览器缓存之前的 Referer 失败结果。
安全说明
- Cookie 只保存在当前 Node.js 进程内存,不写入
.runtime、日志或数据库;重启服务后需要重新粘贴。 - Cookie 会随服务端请求发送给阿里云官方接口,这是获取上传地址的必要步骤。
- 图片会上传到阿里云开发者社区 CDN;本项目不是纯本地存储服务。
- 本项目没有用户系统和访问控制,不要直接暴露到公网。远程使用时请在反向代理层增加身份认证、HTTPS、上传限流和访问日志。
- 不要把 Cookie 粘贴到 issue、群聊、截图或公共日志中。发现泄露后应立即退出阿里云账号或清理登录态。
环境要求
- Node.js 18 或更高版本
- npm
- 能访问阿里云开发者社区的网络环境
安装
npm install复制环境变量示例:
cp .env.example .envWindows PowerShell:
Copy-Item .env.example .env运行
开发时分别启动后端和 Vite:
npm run dev
npm run web:dev访问 http://localhost:5173。
生产或本地一体化运行:
npm run build
npm start访问 http://localhost:5178。
导入 Cookie
- 在自己的浏览器打开 阿里云开发者社区 并完成登录。
- 打开开发者工具的 Network 面板,搜索
getImageUploadUrl,或找到阿里云编辑器触发的图片上传请求。 - 查看该请求的 Request Headers,复制完整的
Cookie请求头,通常应包含c_csrf和login_aliyunid_ticket。 - 回到本项目,点击右上角“需要 Cookie”,粘贴完整 Cookie 并保存。
- Cookie 失效后重新登录阿里云,再粘贴新的 Cookie。
Cookie 只做字段格式校验,不代表登录态一定有效;真正上传时如果阿里云返回 401/403,页面会提示 Cookie 已失效。
配置
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT | 5178 | 后端监听端口 |
常用命令
npm run check # 检查后端 JavaScript 语法
npm run build # 构建 Vue 前端
npm run preview # 预览前端构建产物工作原理
- 用户在自己的浏览器完成阿里云登录。
- 用户把包含
c_csrf和login_aliyunid_ticket的 Cookie 请求头提交给当前服务端。 - 服务端在内存中解析 Cookie,并调用阿里云开发者社区图片接口获取 OSS 临时上传地址。
- 服务端把图片上传到阿里云 OSS/CDN,返回
ucc.alicdn.com图片链接。
常见问题
Cookie 缺少 c_csrf 或 login_aliyunid_ticket
复制的不是完整请求 Cookie。请在 Network 请求的 Request Headers 中复制整行 Cookie,不要只复制一个字段,也不要复制 Set-Cookie 响应头。
阿里云 Cookie 已失效
Cookie 可能过期、被退出登录或被阿里云风控刷新。重新登录阿里云并粘贴新的 Cookie 即可。
Unexpected token '<'
通常表示前端连接到了旧版后端或错误的反向代理地址,接口返回了 HTML 而不是 JSON。请重新执行 npm run build 并重启 Node.js 服务。新版前端会把这类响应显示为可读错误。
图片嵌入后加载失败
确认页面包含 <meta name="referrer" content="no-referrer">,并且图片标签包含 referrerpolicy="no-referrer"。阿里云 CDN 的 Referer 校验是远端策略,本项目无法取消。
免责声明
本项目是非官方工具,与阿里云无隶属、授权或合作关系,仅供学习和个人自托管使用。接口稳定性、账号安全、内容合规和数据可用性均不作保证。使用前请自行阅读并遵守阿里云相关服务协议;介意 Cookie 交给自托管服务、介意图片上传到阿里云 CDN 或无法自行评估风险者,请勿使用。