利用 CloudFlare R2 搭建图床/视频床!无服务器快速部署!

查看 21|回复 0
作者:740moe   
支持 worker && pages 部署!使用 pages 部署可以 fork 仓库,或者下载_worker.js 文件打包成压缩文件上传!
免费套餐介绍
  • 存储: 每月 10 GB
  • A 类操作: 每月 100 万次请求
  • B 类操作: 每月 1000 万次请求
  • 出口(数据传输到互联网): 免费

    个人使用完全足够!图床默认开启压缩,可以储存更多的图片文件!
    功能特点
  • 查看本地历史记录
  • 可选的访客验证功能
  • 单文件最大支持 20MB
  • 支持多文件上传和粘贴上传
  • 支持批量操作和显示上传时间
  • 图片自动压缩( GIF 和视频除外)
  • Cloudflare Cache API 缓存支持
  • 基于 Cloudflare R2 的文件存储
  • 支持多种链接格式( URL 、BBCode 、Markdown )
  • 支持常见的图片和视频格式( jpg 、png 、gif 、mp4 )

    部署教程:
    1. 环境变量说明
    需要在 Cloudflare Workers 中配置以下环境变量:
    [td]变量名[/td]
    [td]说明[/td]
    [td]必填[/td]
    [td]示例[/td]
    DOMAIN
    自定义域名

    example.workers.dev
    DATABASE
    D1 数据库绑定变量名称

    DATABASE
    USERNAME
    管理员用户名

    admin
    PASSWORD
    管理员密码

    password123
    ADMIN_PATH
    管理后台路径

    admin
    ENABLE_AUTH
    访客验证(设置为 true 开启,不设置或设置为 false 则关闭)

    false
    R2_BUCKET
    R2 存储桶名称

    R2_BUCKET
    2. 创建 R2 存储桶
    [ol]
  • 登录 Cloudflare Dashboard
  • 进入 R2 对象储存 → 创建存储桶
  • 设置存储桶名称和区域
  • 保存存储桶的名称以便后续使用
    [/ol]
    3. 创建 D1 数据库
    [ol]
  • 登录 Cloudflare Dashboard
  • 进入 Workers & Pages → D1 SQL 数据库

  • 点击 创建 创建数据库
  • 数据库名称可自定义,例如 images
  • 建议选择数据库位置为 亚太地区,可以获得更好的访问速度

  • 创建数据表:
  • 点击数据库名称进入详情页
  • 选择 控制台 标签
  • 执行以下 SQL 语句:

    [/ol]
    CREATE TABLE media (
        url TEXT PRIMARY KEY
    );
    4. 创建 Worker
    [ol]
  • 进入 Workers & Pages
  • 点击 创建
  • 选择 创建 Worker
  • 为 Worker 设置一个名称
  • 点击 部署 创建 Worker
  • 点击继续处理项目
    [/ol]
    5. 配置环境变量
    [ol]
  • 在 Worker 的 设置 → 变量和机密 中
  • 点击 添加 添加变量
  • 点击 部署
    [/ol]
    6. 绑定数据库和 R2 储存
    [ol]
  • 在 Worker 设置页面找到 设置 → 绑定
  • 点击 添加
  • 选择 D1 数据库
  • 设置变量名为 DATABASE
  • 选择之前创建的数据库
  • 点击 部署
  • 重复上述步骤绑定 R2 储存,变量名为 R2_BUCKET
    [/ol]
    7. 绑定域名
    [ol]
  • 在 Worker 的 设置 → 域和路由
  • 点击 添加 → 自定义域
  • 输入你在 Cloudflare 绑定的域名
  • 点击 添加域
  • 等待域名生效
    [/ol]
    8. 部署代码
    [ol]
  • 进入 Worker 的编辑页面
  • 将 _worker.js 的完整代码复制粘贴到编辑器中
  • 点击 部署
    [/ol]
    9. 配置缓存
    [ol]
  • 进入 Cloudflare Dashboard
  • 进入 网站 → 选择你的自定义域名 → 缓存 → Cache Rules → 创建缓存规则
  • 选择 缓存所有内容模板
  • 设置 边缘 TTL → 忽略缓存控制标头,使用此 TTL → 30 天(根据需要设置)
  • 点击 部署
    [/ol]
    源码: https://github.com/0-RTT/JSimages
    测试:

  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部