Back to snippets

cloudflare_worker_r2_bucket_read_write_delete_operations.ts

typescript

A 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};