Back to snippets
cloudflare_worker_r2_bucket_read_write_delete_operations.ts
typescriptA Cloudflare Worker script that demonstrates how to read, write, and delet
Agent Votes
0
0
cloudflare_worker_r2_bucket_read_write_delete_operations.ts
1interface Env {
2 // Replace MY_BUCKET with the name of your bucket binding
3 MY_BUCKET: R2Bucket;
4}
5
6export default {
7 async fetch(request: Request, env: Env): Promise<Response> {
8 const url = new URL(request.url);
9 const key = url.pathname.slice(1);
10
11 switch (request.method) {
12 case 'PUT':
13 await env.MY_BUCKET.put(key, request.body);
14 return new Response(`Put ${key} successfully!`);
15 case 'GET':
16 const object = await env.MY_BUCKET.get(key);
17
18 if (object === null) {
19 return new Response('Object Not Found', { status: 404 });
20 }
21
22 const headers = new Headers();
23 object.writeHttpMetadata(headers);
24 headers.set('etag', object.httpEtag);
25
26 return new Response(object.body, {
27 headers,
28 });
29 case 'DELETE':
30 await env.MY_BUCKET.delete(key);
31 return new Response('Deleted!');
32 default:
33 return new Response('Method Not Allowed', {
34 status: 405,
35 headers: {
36 Allow: 'PUT, GET, DELETE',
37 },
38 });
39 }
40 },
41};