{"id":29040559,"url":"https://github.com/0-rtt/jsimages","last_synced_at":"2025-06-26T14:31:42.412Z","repository":{"id":298091306,"uuid":"904251922","full_name":"0-RTT/JSimages","owner":"0-RTT","description":"基于 Cloudflare R2 储存的图床/视频床服务","archived":false,"fork":false,"pushed_at":"2024-12-18T11:57:05.000Z","size":106,"stargazers_count":147,"open_issues_count":2,"forks_count":46,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-09T11:26:14.593Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0-RTT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-16T14:32:33.000Z","updated_at":"2025-06-07T15:26:35.000Z","dependencies_parsed_at":"2025-06-09T11:37:20.541Z","dependency_job_id":null,"html_url":"https://github.com/0-RTT/JSimages","commit_stats":null,"previous_names":["0-rtt/jsimages"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0-RTT/JSimages","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0-RTT%2FJSimages","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0-RTT%2FJSimages/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0-RTT%2FJSimages/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0-RTT%2FJSimages/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0-RTT","download_url":"https://codeload.github.com/0-RTT/JSimages/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0-RTT%2FJSimages/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262084476,"owners_count":23256244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-26T14:30:33.262Z","updated_at":"2025-06-26T14:31:42.404Z","avatar_url":"https://github.com/0-RTT.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 介绍\n基于 Cloudflare R2 储存的图床/视频床/文件床服务\n\n## 功能特点\n\n- 可选的访客验证功能\n- 可选的图片压缩功能（默认开启）\n- 可选的文件大小限制（默认 10MB）\n- 支持查看本地历史记录\n- 支持所有文件格式上传\n- 支持多文件上传和粘贴上传\n- 支持批量操作和显示上传时间\n- Cloudflare Cache API 缓存支持\n- 基于 Cloudflare R2 的文件存储\n\n## 更新日志\n\n\u003e **最近更新**: 2024-12-18\n\u003e - 更新管理界面样式\n\u003e - 移除前端的文件类型和文件大小限制\n\u003e - 通过环境变量控制上传文件的大小\n\n\u003cdetails\u003e\n\u003csummary\u003e历史更新记录\u003c/summary\u003e\n\n### 2024-12-18\n- 更新管理界面样式\n- 移除前端的文件类型和文件大小限制\n- 通过环境变量控制上传文件的大小\n\n### 2024-12-17\n- 前端新增一个压缩按钮，用于控制压缩功能，默认状态为开启\n\n### 2024-12-16\n- 同步删除 R2 储存的图片\n- 修改自 [0-RTT/telegraph](https://github.com/0-RTT/telegraph)\n\n\u003c/details\u003e\n\n## 部署步骤\n\u003e ⚠️虽然项目的代码使用了Worker的缓存API，但还是建议配置好**边缘 TTL** 并开启**访客验证**，防止被刷导致扣费！\n\n### 1. 变量说明\n需要在 Cloudflare Workers 中配置以下变量:\n\n| 变量名 | 说明 | 必填 | 示例 |\n|--------|------|------|------|\n| DOMAIN | 自定义域名 | 是 | example.workers.dev |\n| DATABASE | D1 数据库绑定变量名称 | 是 | DATABASE |\n| USERNAME | 管理员用户名 | 是 | admin |\n| PASSWORD | 管理员密码 | 是 | password123 |\n| ADMIN_PATH | 管理后台路径 | 是 | admin |\n| R2_BUCKET | R2 存储桶名称 | 是 | R2_BUCKET |\n| ENABLE_AUTH | 访客验证（设置为 true 开启，不设置或设置为 false 则关闭） | 否 | false |\n| MAX_SIZE_MB | 单文件最大支持大小（单位：MB，默认值为 10） | 否 | 10 |\n\n### 2. 创建 R2 存储桶\n1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com)\n2. 进入 `R2对象储存` → `创建存储桶`\n3. 设置存储桶名称和区域\n4. 保存存储桶的名称以便后续使用\n\n### 3. 创建 D1 数据库\n1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com)\n2. 进入 `Workers \u0026 Pages` → `D1 SQL 数据库`\n3. 点击 `创建` 创建数据库\n   - 数据库名称可自定义，例如 `images`\n   - 建议选择数据库位置为 `亚太地区`，可以获得更好的访问速度\n4. 创建数据表:\n   - 点击数据库名称进入详情页\n   - 选择 `控制台` 标签\n   - 执行以下 SQL 语句:\n```sql\nCREATE TABLE media (\n    url TEXT PRIMARY KEY\n);\n```\n\n### 4. 创建 Worker\n1. 进入 `Workers \u0026 Pages`\n2. 点击 `创建`\n3. 选择 `创建 Worker`\n4. 为 Worker 设置一个名称\n5. 点击 `部署` 创建 Worker\n6. 点击继续处理项目\n\n### 5. 配置变量和机密\n1. 在 Worker 的 `设置` → `变量和机密` 中\n2. 点击 `添加` 添加以下变量\n   - DOMAIN\n   - USERNAME\n   - PASSWORD\n   - ADMIN_PATH\n   - ENABLE_AUTH（可选）\n   - MAX_SIZE_MB（可选）\n3. 点击 `部署`\n\n### 6. 绑定 D1 数据库和 R2 储存\n1. 在 Worker 设置页面找到 `设置` → `绑定`\n2. 点击 `添加` 添加以下变量\n   - DATABASE\n   - R2_BUCKET \n3. 点击 `部署`\n\n### 7. 绑定域名\n1. 在 Worker 的 `设置` → `域和路由`\n2. 点击 `添加` → `自定义域`\n3. 输入你在 Cloudflare 绑定的域名\n4. 点击 `添加域`\n5. 等待域名生效\n\n### 8. 部署代码\n1. 进入 Worker 的编辑页面\n2. 将 `_worker.js` 的完整代码复制粘贴到编辑器中\n3. 点击 `部署`\n\n### 9. 配置缓存\n1. 进入 Cloudflare Dashboard\n2. 进入 `网站` → `选择你的自定义域名` → `缓存` → `Cache Rules` → `创建缓存规则`\n3. 选择 `缓存所有内容模板`\n4. 设置 `边缘 TTL` → `忽略缓存控制标头，使用此 TTL` → `30天`（根据需要设置）\n5. 点击 `部署`\n\n## 开源协议\n\nMIT License\n\n## 鸣谢\n\n- [Cloudflare](https://www.cloudflare.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0-rtt%2Fjsimages","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0-rtt%2Fjsimages","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0-rtt%2Fjsimages/lists"}