项目地址
https://github.com/622cc/cf-picup


一、环境准备

  1. 注册并登录 Cloudflare 官网
  2. 确保已有域名托管在 Cloudflare(域名添加指南

二、R2 存储桶配置

  1. 创建存储桶

    • 控制台左侧菜单 ➔ R2
    • 点击「创建存储桶」
    • 名称建议:images
    • 数据中心选择:自动优化(默认)
  2. 权限设置

    存储桶权限 ➔ 公共访问 ➔ 开启「允许公共读取」

三、Workers 服务部署

  1. 创建Worker

    • 控制台左侧菜单 ➔ Workers 和 Pages
    • 名称示例:image-upload
    • 选择「HTTP 处理程序」
  2. 代码部署

    // 将 worker.js 代码粘贴至编辑器
    addEventListener('fetch', ...)
    • 点击「保存并部署」

四、服务绑定与配置

1. R2存储桶绑定

  • Worker详情页 ➔ 设置变量
  • 添加绑定:

    变量名称:R2_BUCKET
    选择存储桶:images

2. 自定义域名配置

  • 触发器添加自定义域
  • 输入子域名:img.yourdomain.com
  • 自动生成CNAME记录,等待DNS生效(约5分钟)

3. API安全认证

  • 环境变量 ➔ 添加:

    名称:UPLOAD_API_TOKEN
    值:使用密码生成器创建高强度字符串(推荐Bitwarden)
    勾选「加密」

五、浏览器脚本安装

  1. 安装 Tampermonkey 扩展
  2. 新建用户脚本 ➔ 粘贴 ganba.de-cf.js 代码
  3. 配置参数:

    API 地址:https://img.yourdomain.com/api
    API Token:填入环境变量设置的 UPLOAD_API_TOKEN

六、使用说明

  • 支持操作

    - 拖拽上传(支持多文件)
    - 截图粘贴(Ctrl+V)
    - 直接复制图片文件
  • 输出格式

    Markdown:![alt](URL)
    HTML:<img src="URL" alt="description">
    直链:https://img.yourdomain.com/filename.jpg

七、费用与限制

资源类型免费额度超额费率
R2 存储10GB/月$0.015/GB
Workers 请求10万次/天$0.15/百万次
文件限制单个文件 ≤50MB格式:JPG/PNG/GIF/WebP

八、最佳实践

  1. 自动清理策略

    # 通过R2生命周期规则自动删除旧文件
    r2 bucket lifecycle set images --rule '{"ID":"30d-clean","Status":"Enabled","Expiration":{"Days":30}}'
  2. 监控建议


故障排查

常见问题

  • 403错误 ➔ 检查API Token加密状态
  • 上传超时 ➔ 确认文件≤50MB
  • DNS未生效 ➔ 使用dig img.yourdomain.com验证解析

如需帮助,欢迎在项目GitHub提交Issue!

标签: Cloudflare, workers, R2, mian'fei'tu'c

添加新评论