Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit 3bd4b92

Browse files
committed
1 parent 2a05928 commit 3bd4b92

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

packages/tre/src/plugins/r2/gateway.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,14 @@ export class R2Gateway {
110110
return new R2Object(metadata);
111111
}
112112

113-
async delete(key: string) {
114-
validate.key(key);
115-
await this.storage.delete(key);
113+
async delete(keys: string | string[]) {
114+
if (Array.isArray(keys)) {
115+
for (const key of keys) validate.key(key);
116+
await this.storage.deleteMany(keys);
117+
} else {
118+
validate.key(keys);
119+
await this.storage.delete(keys);
120+
}
116121
}
117122

118123
async list(listOptions: R2ListOptions = {}): Promise<R2Objects> {

packages/tre/src/plugins/r2/router.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import assert from "assert";
21
import { TextDecoder } from "util";
32
import { Request, Response } from "../../http";
43
import {
@@ -86,9 +85,9 @@ export class R2Router extends Router<R2Gateway> {
8685
const gateway = this.gatewayFactory.get(params.bucket, persist);
8786

8887
if (metadata.method === "delete") {
89-
assert("object" in metadata);
90-
// TODO: support multiple delete
91-
await gateway.delete(metadata.object);
88+
await gateway.delete(
89+
"object" in metadata ? metadata.object : metadata.objects
90+
);
9291
return new Response();
9392
} else if (metadata.method === "put") {
9493
const result = await gateway.put(metadata.object, value, metadata);

packages/tre/src/plugins/r2/schemas.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ export const R2DeleteRequestSchema = z.intersection(
175175
z.object({ method: z.literal("delete") }),
176176
z.union([
177177
z.object({ object: z.string() }),
178-
z.object({ objects: z.string().array() }), // TODO: support
178+
z.object({ objects: z.string().array() }),
179179
])
180180
);
181181

0 commit comments

Comments
 (0)