15万张(10G)私人图床由赛博菩萨 Cloudflare 和笔者开发的 imgsaver 共同配合完成。
- Cloudflare 免费提供 10G 云存储
- imgsaver 免费提供收集和管理功能
本指南首先介绍如何在 Cloudflare 上部署自定义云存储,然后再介绍如何配置和使用 imgsaver。
如何在 Cloudflare 上部署自定义云存储
前置条件
- 从 Cloudflare 购买了一个域名,或将从其他注册商购买的域名配置为 Cloudflare 代理。
- 已向 Cloudflare 添加信用卡(启用 R2 Bucket 需要,但前 10GB 存储是免费的)。
第一步:创建 R2 存储桶
第二步:配置存储桶设置
-
转到新创建的存储桶的设置。
-
在公共访问部分,找到自定义域名并点击“连接域名”。
-
按照说明为你的存储桶创建自定义域名。
-
上传文件以测试存储桶配置是否成功。
-
确保 CORS(跨源资源共享)设置配置为允许来自你的域的访问(不配置的话无法在 imgsaver.net 网页下载图片)。复制并使用以下 JSON 作为你的 CORS 设置:
[ { "AllowedOrigins": [ "https://imgsaver.net", "https://www.imgsaver.net" ], "AllowedMethods": [ "GET", "HEAD" ] } ]
第三步:在 Cloudflare Workers 上部署图像上传代码
-
导航到 Cloudflare 仪表板中的 Workers 部分。
-
点击“创建 Worker”,为你的 worker 提供任意名称。
-
部署以下代码。仅修改
worker.js
:function setCorsHeaders(response) { let headers = new Headers(response.headers); headers.set('Access-Control-Allow-Origin', '*'); headers.set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); headers.set('Access-Control-Allow-Headers', 'Content-Type, X-Custom-Auth-Key'); return new Response(response.body, { ...response, headers }); } export default { async fetch(request, env) { if (request.method === 'PUT') { const auth = request.headers.get('Authorization'); const expectedAuth = `Bearer ${env.AUTH_SECRET}`; if (!auth || auth !== expectedAuth) { return new Response('Unauthorized', { status: 401 }); } const url = new URL(request.url); const key = url.pathname.slice(1); await env.MY_BUCKET.put(key, request.body); return new Response(`Object ${key} uploaded successfully!`); } const url = new URL(request.url); const key = url.pathname.slice(1); const object = await env.MY_BUCKET.get(key); if (object === null) { return new Response('Object Not Found', { status: 404 }); } const headers = new Headers(); object.writeHttpMetadata(headers); headers.set('etag', object.httpEtag); return setCorsHeaders(new Response(object.body, { headers })) }, };
-
保存并部署 worker。
- 如果部署失败,是由于缺少环境变量。不用担心,我们继续配置。
- 上述代码使用
AUTH_SECRET
和MY_BUCKET
环境变量,我们下一步将设置这些变量。
- 在变量中添加环境变量。
-
设置
AUTH_SECRET
。你可以从这里生成一个随机的 UUID:UUID 生成器。 -
设置变量后记得点击部署按钮。
- 在变量中添加 R2 存储桶绑定。
第四步:为 Worker 配置自定义域名
现在你的自定义云存储设置已完成。你可以使用自定义域名处理图像上传并通过 R2 存储桶管理你的文件。
最后,使用以下设置配置 ImgSaver 插件:
- 自定义上传端点(Custom Upload Endpoint):
https://upload.slarkvan.com
- 自定义上传密钥(Custom Upload Secret Key):
aee30c3f-6794-4d63-99a4-17604e6e6225
- 自定义显示端点(Custom Display Endpoint):
https://static.slarkvan.com
现在,在 ImgSaver 插件的选项(Options)页面中填写这些值。你现在拥有 10GB 的免费图像托管!
通过遵循这些步骤,你将成功地白嫖到 Cloudflare 可存储 15 万张(10G)私人图床