实验:Workers 读写 R2
这个实验展示 Workers 如何:
- 创建对象
- 读取对象
- 删除对象
- 列出对象
Worker 支持的 R2 操作
ts
await env.DEMO_BUCKET.put(key, value);
const object = await env.DEMO_BUCKET.get(key);
const text = await object?.text();
await env.DEMO_BUCKET.delete(key);
const listed = await env.DEMO_BUCKET.list();本项目接口
| 方法 | 路径 | 作用 |
|---|---|---|
GET | /api/demo | 查看 Worker 与 R2 绑定状态 |
POST | /api/demo/object | 写入一个 R2 对象 |
GET | /api/demo/object | 读取指定 R2 对象 |
DELETE | /api/demo/object | 删除指定 R2 对象 |
GET | /api/demo/objects | 列出 Bucket 中的对象 |
写入对象
bash
curl -X POST http://localhost:8787/api/demo/object \
-H "Content-Type: application/json" \
-d '{"key":"hello.txt","value":"Hello R2 from Workers"}'读取对象
bash
curl "http://localhost:8787/api/demo/object?key=hello.txt"删除对象
bash
curl -X DELETE "http://localhost:8787/api/demo/object?key=hello.txt"安全注意
不要让前端直接保存 R2 密钥。对象读写应该通过 Workers 完成,由 Workers 控制允许哪些 key 被访问。