Skip to content

Commit 91d0c40

Browse files
authored
fix(r2): validate bucket names (#9165)
* fix(r2): validate bucket names * fixup! review feedback
1 parent f9b90a2 commit 91d0c40

File tree

21 files changed

+180
-102
lines changed

21 files changed

+180
-102
lines changed

.changeset/lemon-pants-jam.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"wrangler": patch
3+
---
4+
5+
validate r2 bucket names
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
type Env = {
2-
BUCKET: R2Bucket;
2+
bucket: R2Bucket;
33
};
44

55
export const onRequestPut: PagesFunction<Env> = async ({ env }) => {
6-
const object = await env.BUCKET.put("test", "Hello world!");
6+
const object = await env.bucket.put("test", "Hello world!");
77
return new Response(JSON.stringify(object));
88
};
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
type Env = {
2-
BUCKET: R2Bucket;
2+
bucket: R2Bucket;
33
};
44

55
export const onRequestGet: PagesFunction<Env> = async ({ env }) => {
6-
const object = await env.BUCKET.get("test");
6+
const object = await env.bucket.get("test");
77
return new Response(JSON.stringify(object));
88
};

fixtures/pages-functions-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"main": "dist/worker.js",
66
"scripts": {
77
"check:type": "tsc",
8-
"dev": "wrangler pages dev public --binding=NAME=VALUE --binding=OTHER_NAME=THING=WITH=EQUALS --r2=BUCKET --port 8789",
8+
"dev": "wrangler pages dev public --binding=NAME=VALUE --binding=OTHER_NAME=THING=WITH=EQUALS --r2=bucket --port 8789",
99
"test:ci": "vitest run",
1010
"test:watch": "vitest",
1111
"type:tests": "tsc -p ./tests/tsconfig.json"

fixtures/pages-functions-app/tests/index.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ describe("Pages Functions", () => {
1616
[
1717
"--binding=NAME=VALUE",
1818
"--binding=OTHER_NAME=THING=WITH=EQUALS",
19-
"--r2=BUCKET",
19+
"--r2=bucket",
2020
"--port=0",
2121
"--inspector-port=0",
2222
]
@@ -58,7 +58,7 @@ describe("Pages Functions", () => {
5858
const env = await response.json();
5959
expect(env).toEqual({
6060
ASSETS: {},
61-
BUCKET: {},
61+
bucket: {},
6262
NAME: "VALUE",
6363
OTHER_NAME: "THING=WITH=EQUALS",
6464
VAR_1: "var #1 value",

fixtures/pages-workerjs-directory/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"sideEffects": false,
55
"scripts": {
66
"check:type": "tsc",
7-
"dev": "wrangler pages dev public --d1=D1 --d1=PUT=elsewhere --kv KV --kv KV_REF=other_kv --r2 R2 --r2=R2_REF=other_r2 --port 8794",
7+
"dev": "wrangler pages dev public --d1=D1 --d1=PUT=elsewhere --kv KV --kv KV_REF=other_kv --r2 r2bucket --r2=R2_REF=other-r2 --port 8794",
88
"test:ci": "vitest run",
99
"type:tests": "tsc -p ./tests/tsconfig.json"
1010
},

fixtures/pages-workerjs-directory/public/_worker.js/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export default {
4242
}
4343

4444
if (pathname === "/r2") {
45-
await env.R2.put("key", "value");
45+
await env.r2bucket.put("key", "value");
4646

4747
await env.R2_REF.put("key", "value");
4848

fixtures/pages-workerjs-directory/tests/index.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ describe("Pages _worker.js/ directory", () => {
2323
"--d1=PUT=elsewhere",
2424
"--kv=KV",
2525
"--kv=KV_REF=other_kv",
26-
"--r2=R2",
27-
"--r2=R2_REF=other_r2",
26+
"--r2=r2bucket",
27+
"--r2=R2_REF=other-r2",
2828
]
2929
);
3030
try {

packages/wrangler/e2e/__snapshots__/pages-dev.test.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ Your Worker has access to the following bindings:
1717
- D1_BINDING_2_TOML: D1_NAME_2_TOML (D1_ID_2_TOML) [simulated locally]
1818
- D1_BINDING_3_ARGS: local-D1_BINDING_3_ARGS=D1_NAME_3_ARGS (D1_NAME_3_ARGS) [simulated locally]
1919
- R2 Buckets:
20-
- R2_BINDING_1_TOML: NEW_R2_BUCKET_1 [simulated locally]
21-
- R2_BINDING_2_TOML: R2_BUCKET_2_TOML [simulated locally]
22-
- R2_BINDING_3_TOML: R2_BUCKET_3_ARGS [simulated locally]
20+
- R2_BINDING_1_TOML: new-r2-bucket-1 [simulated locally]
21+
- R2_BINDING_2_TOML: r2-bucket-2-toml [simulated locally]
22+
- R2_BINDING_3_TOML: r2-bucket-3-args [simulated locally]
2323
- Services:
2424
- SERVICE_BINDING_1_TOML: NEW_SERVICE_NAME_1 [not connected]
2525
- SERVICE_BINDING_2_TOML: SERVICE_NAME_2_TOML [not connected]

packages/wrangler/e2e/pages-dev.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ describe.sequential.each([{ cmd: "wrangler pages dev" }])(
115115
}`,
116116
});
117117
const worker = helper.runLongLived(
118-
`${cmd} --inspector-port ${inspectorPort} . --port ${port} --service TEST_SERVICE=test-worker --kv TEST_KV --do TEST_DO=TestDurableObject@a --d1 TEST_D1 --r2 TEST_R2`
118+
`${cmd} --inspector-port ${inspectorPort} . --port ${port} --service TEST_SERVICE=test-worker --kv TEST_KV --do TEST_DO=TestDurableObject@a --d1 TEST_D1 --r2 test-r2`
119119
);
120120
await worker.waitForReady();
121121
expect(normalizeOutput(worker.currentOutput)).toContain(
@@ -127,7 +127,7 @@ describe.sequential.each([{ cmd: "wrangler pages dev" }])(
127127
- D1 Databases:
128128
- TEST_D1: local-TEST_D1 (TEST_D1) [simulated locally]
129129
- R2 Buckets:
130-
- TEST_R2: TEST_R2 [simulated locally]
130+
- test-r2: test-r2 [simulated locally]
131131
- Services:
132132
- TEST_SERVICE: test-worker [not connected]
133133
`
@@ -342,7 +342,7 @@ describe.sequential.each([{ cmd: "wrangler pages dev" }])(
342342
` --kv KV_BINDING_1_TOML=NEW_KV_ID_1 KV_BINDING_3_ARGS=KV_ID_3_ARGS`,
343343
` --do DO_BINDING_1_TOML=NEW_DO_1@NEW_DO_SCRIPT_1 DO_BINDING_3_ARGS=DO_3_ARGS@DO_SCRIPT_3_ARGS`,
344344
` --d1 D1_BINDING_1_TOML=NEW_D1_NAME_1 D1_BINDING_3_ARGS=D1_NAME_3_ARGS`,
345-
` --r2 R2_BINDING_1_TOML=NEW_R2_BUCKET_1 R2_BINDING_3_TOML=R2_BUCKET_3_ARGS`,
345+
` --r2 R2_BINDING_1_TOML=new-r2-bucket-1 R2_BINDING_3_TOML=r2-bucket-3-args`,
346346
` --service SERVICE_BINDING_1_TOML=NEW_SERVICE_NAME_1 SERVICE_BINDING_3_TOML=SERVICE_NAME_3_ARGS`,
347347
` --ai AI_BINDING_2_TOML`,
348348
];
@@ -402,12 +402,12 @@ describe.sequential.each([{ cmd: "wrangler pages dev" }])(
402402
# to override
403403
[[r2_buckets]]
404404
binding = 'R2_BINDING_1_TOML'
405-
bucket_name = 'R2_BUCKET_1_TOML'
405+
bucket_name = 'r2-bucket-1-toml'
406406
407407
# to merge as is
408408
[[r2_buckets]]
409409
binding = 'R2_BINDING_2_TOML'
410-
bucket_name = 'R2_BUCKET_2_TOML'
410+
bucket_name = 'r2-bucket-2-toml'
411411
412412
# to override
413413
[[services]]

0 commit comments

Comments
 (0)