Ali ImgBed

一个轻量的自托管图片上传工具。用户先在自己的浏览器登录阿里云开发者社区,再把登录请求中的 Cookie 粘贴到本项目,由服务端调用阿里云图片接口获取上传地址并返回 CDN 链接。

开源地址:https://cnb.cool/qiqinb/alicdn-imgbed

严正声明:
该项目仅为开发测试用途,个人日常普通使用图床(如:上传一张合规的背景图片 用于博客)是被允许的,但请勿滥用阿里云服务、批量灌入内容、上传违法违规内容,或将本项目用于违反阿里云服务条款和当地法律法规的用途。由使用者自行承担账号、Cookie、内容、流量和合规风险,笔者(开发者)不承担任何相关责任,若您不同意此说明 请勿使用
你需要把阿里云登录 Cookie 提交给当前 Node.js 服务。
Cookie 只提交到你当前访问的这个服务端,不会发送给项目作者或项目内置的其他第三方服务;服务端不会把 Cookie 写入磁盘或日志,重启后会清除。
为了获取上传地址,服务端必须把必要 Cookie 发送给阿里云官方接口;图片本身也会上传到阿里云 CDN,因此无法承诺“绝对安全”或“完全不进行远程上传”。介意请勿使用
本项目没有用户认证和访问控制,切勿直接暴露在公网。如需远程使用,请在反向代理层增加身份认证、HTTPS、限流和日志。

功能

  • 用户在自己的浏览器完成阿里云登录、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 .env

Windows 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

  1. 在自己的浏览器打开 阿里云开发者社区 并完成登录。
  2. 打开开发者工具的 Network 面板,搜索 getImageUploadUrl,或找到阿里云编辑器触发的图片上传请求。
  3. 查看该请求的 Request Headers,复制完整的 Cookie 请求头,通常应包含 c_csrflogin_aliyunid_ticket
  4. 回到本项目,点击右上角“需要 Cookie”,粘贴完整 Cookie 并保存。
  5. Cookie 失效后重新登录阿里云,再粘贴新的 Cookie。

Cookie 只做字段格式校验,不代表登录态一定有效;真正上传时如果阿里云返回 401/403,页面会提示 Cookie 已失效。

配置

变量默认值说明
PORT5178后端监听端口

常用命令

npm run check    # 检查后端 JavaScript 语法
npm run build    # 构建 Vue 前端
npm run preview  # 预览前端构建产物

工作原理

  1. 用户在自己的浏览器完成阿里云登录。
  2. 用户把包含 c_csrflogin_aliyunid_ticket 的 Cookie 请求头提交给当前服务端。
  3. 服务端在内存中解析 Cookie,并调用阿里云开发者社区图片接口获取 OSS 临时上传地址。
  4. 服务端把图片上传到阿里云 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 或无法自行评估风险者,请勿使用。

最后修改:2026 年 07 月 24 日
如果觉得我的文章对你有用,请随意赞赏!