Skip to content
File

Blob: src/workerd/api/tests/r2-instrumentation-test.js

javascript1125 lines
1// Copyright (c) 2017-2023 Cloudflare, Inc.
2// Licensed under the Apache 2.0 license found in the LICENSE file or at:
3// https://opensource.org/licenses/Apache-2.0
4import * as assert from 'node:assert';
5import {
6 invocationPromises,
7 spans,
8 testTailHandler,
9} from 'test:instrumentation-tail';
10 
11// Use shared instrumentation test tail worker
12export default testTailHandler;
13 
14export const test = {
15 async test() {
16 // Wait for all the tailStream executions to finish
17 await Promise.allSettled(invocationPromises);
18 
19 // Recorded streaming tail worker events, in insertion order.
20 let received = Array.from(spans.values());
21 
22 // spans emitted by r2-test.js in execution order
23 let expected = [
24 {
25 name: 'r2_put',
26 'cloudflare.binding.type': 'r2',
27 'cloudflare.binding.name': 'BUCKET',
28 'cloudflare.r2.operation': 'PutObject',
29 'cloudflare.r2.bucket': 'r2-test',
30 'cloudflare.r2.request.key': 'basicKey',
31 'cloudflare.r2.request.size': 7n,
32 'cloudflare.r2.response.success': true,
33 'cloudflare.r2.response.etag': 'objectEtag',
34 'cloudflare.r2.response.size': 123,
35 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
36 'cloudflare.r2.response.storage_class': 'Standard',
37 'cloudflare.r2.response.custom_metadata': true,
38 closed: true,
39 },
40 {
41 name: 'r2_get',
42 'cloudflare.binding.type': 'r2',
43 'cloudflare.binding.name': 'BUCKET',
44 'cloudflare.r2.operation': 'GetObject',
45 'cloudflare.r2.bucket': 'r2-test',
46 'cloudflare.r2.request.key': 'basicKey',
47 'cloudflare.r2.response.success': true,
48 'cloudflare.r2.response.etag': 'objectEtag',
49 'cloudflare.r2.response.size': 123,
50 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
51 'cloudflare.r2.response.storage_class': 'Standard',
52 'cloudflare.r2.response.custom_metadata': true,
53 closed: true,
54 },
55 {
56 name: 'r2_get',
57 'cloudflare.binding.type': 'r2',
58 'cloudflare.binding.name': 'BUCKET',
59 'cloudflare.r2.operation': 'GetObject',
60 'cloudflare.r2.bucket': 'r2-test',
61 'cloudflare.r2.request.key': 'basicKey',
62 'cloudflare.r2.response.success': true,
63 'cloudflare.r2.response.etag': 'objectEtag',
64 'cloudflare.r2.response.size': 123,
65 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
66 'cloudflare.r2.response.storage_class': 'Standard',
67 'cloudflare.r2.response.custom_metadata': true,
68 closed: true,
69 },
70 {
71 name: 'r2_head',
72 'cloudflare.binding.type': 'r2',
73 'cloudflare.binding.name': 'BUCKET',
74 'cloudflare.r2.operation': 'HeadObject',
75 'cloudflare.r2.bucket': 'r2-test',
76 'cloudflare.r2.request.key': 'basicKey',
77 'cloudflare.r2.response.success': true,
78 'cloudflare.r2.response.etag': 'objectEtag',
79 'cloudflare.r2.response.size': 123,
80 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
81 'cloudflare.r2.response.storage_class': 'Standard',
82 'cloudflare.r2.response.custom_metadata': true,
83 closed: true,
84 },
85 {
86 name: 'r2_createMultipartUpload',
87 'cloudflare.binding.type': 'r2',
88 'cloudflare.binding.name': 'BUCKET',
89 'cloudflare.r2.operation': 'CreateMultipartUpload',
90 'cloudflare.r2.bucket': 'r2-test',
91 'cloudflare.r2.request.key': 'basicKey',
92 'cloudflare.r2.response.success': true,
93 'cloudflare.r2.response.upload_id': 'multipartId',
94 closed: true,
95 },
96 {
97 name: 'r2_uploadPart',
98 'cloudflare.binding.type': 'r2',
99 'cloudflare.binding.name': 'BUCKET',
100 'cloudflare.r2.operation': 'UploadPart',
101 'cloudflare.r2.bucket': 'r2-test',
102 'cloudflare.r2.request.upload_id': 'multipartId',
103 'cloudflare.r2.request.part_number': 1n,
104 'cloudflare.r2.request.key': 'basicKey',
105 'cloudflare.r2.request.size': 7n,
106 'cloudflare.r2.response.success': true,
107 'cloudflare.r2.response.etag': 'partEtag',
108 closed: true,
109 },
110 {
111 name: 'r2_abortMultipartUpload',
112 'cloudflare.binding.type': 'r2',
113 'cloudflare.binding.name': 'BUCKET',
114 'cloudflare.r2.operation': 'AbortMultipartUpload',
115 'cloudflare.r2.bucket': 'r2-test',
116 'cloudflare.r2.request.upload_id': 'multipartId',
117 'cloudflare.r2.request.key': 'basicKey',
118 'cloudflare.r2.response.success': true,
119 closed: true,
120 },
121 {
122 name: 'r2_completeMultipartUpload',
123 'cloudflare.binding.type': 'r2',
124 'cloudflare.binding.name': 'BUCKET',
125 'cloudflare.r2.operation': 'CompleteMultipartUpload',
126 'cloudflare.r2.bucket': 'r2-test',
127 'cloudflare.r2.request.upload_id': 'multipartId',
128 'cloudflare.r2.request.key': 'basicKey',
129 'cloudflare.r2.request.uploaded_parts': '1',
130 'cloudflare.r2.response.success': true,
131 'cloudflare.r2.response.etag': 'objectEtag',
132 'cloudflare.r2.response.size': 123,
133 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
134 'cloudflare.r2.response.storage_class': 'Standard',
135 'cloudflare.r2.response.custom_metadata': true,
136 closed: true,
137 },
138 {
139 name: 'r2_list',
140 'cloudflare.binding.type': 'r2',
141 'cloudflare.binding.name': 'BUCKET',
142 'cloudflare.r2.operation': 'ListObjects',
143 'cloudflare.r2.bucket': 'r2-test',
144 'cloudflare.r2.request.limit': 1n,
145 'cloudflare.r2.request.prefix': 'basic',
146 'cloudflare.r2.request.cursor': 'ai',
147 'cloudflare.r2.request.delimiter': '/',
148 'cloudflare.r2.request.include.http_metadata': true,
149 'cloudflare.r2.request.include.custom_metadata': true,
150 'cloudflare.r2.response.success': true,
151 'cloudflare.r2.response.returned_objects': 1n,
152 'cloudflare.r2.response.delimited_prefixes': 0n,
153 'cloudflare.r2.response.truncated': true,
154 'cloudflare.r2.response.cursor': 'ai',
155 closed: true,
156 },
157 {
158 name: 'r2_delete',
159 'cloudflare.binding.type': 'r2',
160 'cloudflare.binding.name': 'BUCKET',
161 'cloudflare.r2.operation': 'DeleteObject',
162 'cloudflare.r2.bucket': 'r2-test',
163 'cloudflare.r2.request.keys': 'basicKey',
164 'cloudflare.r2.response.success': true,
165 closed: true,
166 },
167 {
168 name: 'r2_delete',
169 'cloudflare.binding.type': 'r2',
170 'cloudflare.binding.name': 'BUCKET',
171 'cloudflare.r2.operation': 'DeleteObject',
172 'cloudflare.r2.bucket': 'r2-test',
173 'cloudflare.r2.request.keys': 'basicKey, basicKey2',
174 'cloudflare.r2.response.success': true,
175 closed: true,
176 },
177 {
178 name: 'r2_get',
179 'cloudflare.binding.type': 'r2',
180 'cloudflare.binding.name': 'BUCKET',
181 'cloudflare.r2.operation': 'GetObject',
182 'cloudflare.r2.bucket': 'r2-test',
183 'cloudflare.r2.request.key': 'rangeOffLen',
184 'cloudflare.r2.request.range.offset': 1n,
185 'cloudflare.r2.request.range.length': 3n,
186 'cloudflare.r2.response.success': true,
187 'cloudflare.r2.response.etag': 'objectEtag',
188 'cloudflare.r2.response.size': 123,
189 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
190 'cloudflare.r2.response.storage_class': 'Standard',
191 'cloudflare.r2.response.custom_metadata': true,
192 closed: true,
193 },
194 {
195 name: 'r2_get',
196 'cloudflare.binding.type': 'r2',
197 'cloudflare.binding.name': 'BUCKET',
198 'cloudflare.r2.operation': 'GetObject',
199 'cloudflare.r2.bucket': 'r2-test',
200 'cloudflare.r2.request.key': 'rangeSuff',
201 'cloudflare.r2.request.range.suffix': 2n,
202 'cloudflare.r2.response.success': true,
203 'cloudflare.r2.response.etag': 'objectEtag',
204 'cloudflare.r2.response.size': 123,
205 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
206 'cloudflare.r2.response.storage_class': 'Standard',
207 'cloudflare.r2.response.custom_metadata': true,
208 closed: true,
209 },
210 {
211 name: 'r2_put',
212 'cloudflare.binding.type': 'r2',
213 'cloudflare.binding.name': 'BUCKET',
214 'cloudflare.r2.operation': 'PutObject',
215 'cloudflare.r2.bucket': 'r2-test',
216 'cloudflare.r2.request.key': 'throwOnInvalidEtag',
217 closed: true,
218 },
219 {
220 name: 'r2_put',
221 'cloudflare.binding.type': 'r2',
222 'cloudflare.binding.name': 'BUCKET',
223 'cloudflare.r2.operation': 'PutObject',
224 'cloudflare.r2.bucket': 'r2-test',
225 'cloudflare.r2.request.key': 'throwOnInvalidEtag',
226 closed: true,
227 },
228 {
229 name: 'r2_put',
230 'cloudflare.binding.type': 'r2',
231 'cloudflare.binding.name': 'BUCKET',
232 'cloudflare.r2.operation': 'PutObject',
233 'cloudflare.r2.bucket': 'r2-test',
234 'cloudflare.r2.request.key': 'onlyIfStrongEtag',
235 'cloudflare.r2.request.only_if.etag_matches': 'strongEtag',
236 'cloudflare.r2.request.only_if.etag_does_not_match': 'strongEtag',
237 'cloudflare.r2.request.only_if.uploaded_before':
238 '2000-01-01T00:00:00.000Z',
239 'cloudflare.r2.request.size': 7n,
240 'cloudflare.r2.response.success': true,
241 'cloudflare.r2.response.etag': 'objectEtag',
242 'cloudflare.r2.response.size': 123,
243 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
244 'cloudflare.r2.response.storage_class': 'Standard',
245 'cloudflare.r2.response.custom_metadata': true,
246 closed: true,
247 },
248 {
249 name: 'r2_put',
250 'cloudflare.binding.type': 'r2',
251 'cloudflare.binding.name': 'BUCKET',
252 'cloudflare.r2.operation': 'PutObject',
253 'cloudflare.r2.bucket': 'r2-test',
254 'cloudflare.r2.request.key': 'onlyIfWildcard',
255 'cloudflare.r2.request.only_if.etag_matches': '*',
256 'cloudflare.r2.request.only_if.etag_does_not_match': '*',
257 'cloudflare.r2.request.only_if.uploaded_after':
258 '2000-01-01T00:00:00.000Z',
259 'cloudflare.r2.request.size': 7n,
260 'cloudflare.r2.response.success': true,
261 'cloudflare.r2.response.etag': 'objectEtag',
262 'cloudflare.r2.response.size': 123,
263 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
264 'cloudflare.r2.response.storage_class': 'Standard',
265 'cloudflare.r2.response.custom_metadata': true,
266 closed: true,
267 },
268 {
269 name: 'r2_get',
270 'cloudflare.binding.type': 'r2',
271 'cloudflare.binding.name': 'BUCKET',
272 'cloudflare.r2.operation': 'GetObject',
273 'cloudflare.r2.bucket': 'r2-test',
274 'cloudflare.r2.request.key': 'onlyIfStrongEtag',
275 'cloudflare.r2.request.only_if.etag_matches': 'strongEtag',
276 'cloudflare.r2.request.only_if.etag_does_not_match': 'strongEtag',
277 'cloudflare.r2.request.only_if.uploaded_before':
278 '2000-01-01T00:00:00.000Z',
279 'cloudflare.r2.response.success': true,
280 'cloudflare.r2.response.etag': 'objectEtag',
281 'cloudflare.r2.response.size': 123,
282 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
283 'cloudflare.r2.response.storage_class': 'Standard',
284 'cloudflare.r2.response.custom_metadata': true,
285 closed: true,
286 },
287 {
288 name: 'r2_get',
289 'cloudflare.binding.type': 'r2',
290 'cloudflare.binding.name': 'BUCKET',
291 'cloudflare.r2.operation': 'GetObject',
292 'cloudflare.r2.bucket': 'r2-test',
293 'cloudflare.r2.request.key': 'onlyIfWildcard',
294 'cloudflare.r2.request.only_if.etag_matches': '*',
295 'cloudflare.r2.request.only_if.etag_does_not_match': '*',
296 'cloudflare.r2.request.only_if.uploaded_after':
297 '2000-01-01T00:00:00.000Z',
298 'cloudflare.r2.response.success': true,
299 'cloudflare.r2.response.etag': 'objectEtag',
300 'cloudflare.r2.response.size': 123,
301 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
302 'cloudflare.r2.response.storage_class': 'Standard',
303 'cloudflare.r2.response.custom_metadata': true,
304 closed: true,
305 },
306 {
307 name: 'r2_put',
308 'cloudflare.binding.type': 'r2',
309 'cloudflare.binding.name': 'BUCKET',
310 'cloudflare.r2.operation': 'PutObject',
311 'cloudflare.r2.bucket': 'r2-test',
312 'cloudflare.r2.request.key': 'httpMetadata',
313 'cloudflare.r2.request.http_metadata.content_type': 'text/plain',
314 'cloudflare.r2.request.http_metadata.content_encoding': 'utf-8',
315 'cloudflare.r2.request.http_metadata.content_disposition':
316 'attachment; filename = "basicKey.txt"',
317 'cloudflare.r2.request.http_metadata.content_language': 'en-US',
318 'cloudflare.r2.request.http_metadata.cache_control': 'no-store',
319 'cloudflare.r2.request.http_metadata.cache_expiry': 1000n,
320 'cloudflare.r2.request.size': 7n,
321 'cloudflare.r2.response.success': true,
322 'cloudflare.r2.response.etag': 'objectEtag',
323 'cloudflare.r2.response.size': 123,
324 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
325 'cloudflare.r2.response.storage_class': 'Standard',
326 'cloudflare.r2.response.content_type': 'text/plain',
327 'cloudflare.r2.response.content_encoding': 'utf-8',
328 'cloudflare.r2.response.content_disposition':
329 'attachment; filename = "basicKey.txt"',
330 'cloudflare.r2.response.content_language': 'en-US',
331 'cloudflare.r2.response.cache_control': 'no-store',
332 'cloudflare.r2.response.cache_expiry': '1970-01-01T00:00:01.000Z',
333 'cloudflare.r2.response.custom_metadata': true,
334 closed: true,
335 },
336 {
337 name: 'r2_head',
338 'cloudflare.binding.type': 'r2',
339 'cloudflare.binding.name': 'BUCKET',
340 'cloudflare.r2.operation': 'HeadObject',
341 'cloudflare.r2.bucket': 'r2-test',
342 'cloudflare.r2.request.key': 'httpMetadata',
343 'cloudflare.r2.response.success': true,
344 'cloudflare.r2.response.etag': 'objectEtag',
345 'cloudflare.r2.response.size': 123,
346 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
347 'cloudflare.r2.response.storage_class': 'Standard',
348 'cloudflare.r2.response.content_type': 'text/plain',
349 'cloudflare.r2.response.content_encoding': 'utf-8',
350 'cloudflare.r2.response.content_disposition':
351 'attachment; filename = "basicKey.txt"',
352 'cloudflare.r2.response.content_language': 'en-US',
353 'cloudflare.r2.response.cache_control': 'no-store',
354 'cloudflare.r2.response.cache_expiry': '1970-01-01T00:00:01.000Z',
355 'cloudflare.r2.response.custom_metadata': true,
356 closed: true,
357 },
358 {
359 name: 'r2_get',
360 'cloudflare.binding.type': 'r2',
361 'cloudflare.binding.name': 'BUCKET',
362 'cloudflare.r2.operation': 'GetObject',
363 'cloudflare.r2.bucket': 'r2-test',
364 'cloudflare.r2.request.key': 'httpMetadata',
365 'cloudflare.r2.response.success': true,
366 'cloudflare.r2.response.etag': 'objectEtag',
367 'cloudflare.r2.response.size': 123,
368 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
369 'cloudflare.r2.response.storage_class': 'Standard',
370 'cloudflare.r2.response.content_type': 'text/plain',
371 'cloudflare.r2.response.content_encoding': 'utf-8',
372 'cloudflare.r2.response.content_disposition':
373 'attachment; filename = "basicKey.txt"',
374 'cloudflare.r2.response.content_language': 'en-US',
375 'cloudflare.r2.response.cache_control': 'no-store',
376 'cloudflare.r2.response.cache_expiry': '1970-01-01T00:00:01.000Z',
377 'cloudflare.r2.response.custom_metadata': true,
378 closed: true,
379 },
380 {
381 name: 'r2_list',
382 'cloudflare.binding.type': 'r2',
383 'cloudflare.binding.name': 'BUCKET',
384 'cloudflare.r2.operation': 'ListObjects',
385 'cloudflare.r2.bucket': 'r2-test',
386 'cloudflare.r2.request.prefix': 'httpMeta',
387 'cloudflare.r2.request.include.http_metadata': true,
388 'cloudflare.r2.response.success': true,
389 'cloudflare.r2.response.returned_objects': 1n,
390 'cloudflare.r2.response.delimited_prefixes': 0n,
391 'cloudflare.r2.response.truncated': false,
392 closed: true,
393 },
394 {
395 name: 'r2_createMultipartUpload',
396 'cloudflare.binding.type': 'r2',
397 'cloudflare.binding.name': 'BUCKET',
398 'cloudflare.r2.operation': 'CreateMultipartUpload',
399 'cloudflare.r2.bucket': 'r2-test',
400 'cloudflare.r2.request.key': 'httpMetadata',
401 'cloudflare.r2.request.http_metadata.content_type': 'text/plain',
402 'cloudflare.r2.request.http_metadata.content_encoding': 'utf-8',
403 'cloudflare.r2.request.http_metadata.content_disposition':
404 'attachment; filename = "basicKey.txt"',
405 'cloudflare.r2.request.http_metadata.content_language': 'en-US',
406 'cloudflare.r2.request.http_metadata.cache_control': 'no-store',
407 'cloudflare.r2.request.http_metadata.cache_expiry': 1000n,
408 'cloudflare.r2.response.success': true,
409 'cloudflare.r2.response.upload_id': 'multipartId',
410 closed: true,
411 },
412 {
413 name: 'r2_completeMultipartUpload',
414 'cloudflare.binding.type': 'r2',
415 'cloudflare.binding.name': 'BUCKET',
416 'cloudflare.r2.operation': 'CompleteMultipartUpload',
417 'cloudflare.r2.bucket': 'r2-test',
418 'cloudflare.r2.request.upload_id': 'multipartId',
419 'cloudflare.r2.request.key': 'httpMetadata',
420 'cloudflare.r2.request.uploaded_parts': '',
421 'cloudflare.r2.response.success': true,
422 'cloudflare.r2.response.etag': 'objectEtag',
423 'cloudflare.r2.response.size': 123,
424 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
425 'cloudflare.r2.response.storage_class': 'Standard',
426 'cloudflare.r2.response.content_type': 'text/plain',
427 'cloudflare.r2.response.content_encoding': 'utf-8',
428 'cloudflare.r2.response.content_disposition':
429 'attachment; filename = "basicKey.txt"',
430 'cloudflare.r2.response.content_language': 'en-US',
431 'cloudflare.r2.response.cache_control': 'no-store',
432 'cloudflare.r2.response.cache_expiry': '1970-01-01T00:00:01.000Z',
433 'cloudflare.r2.response.custom_metadata': true,
434 closed: true,
435 },
436 {
437 name: 'r2_put',
438 'cloudflare.binding.type': 'r2',
439 'cloudflare.binding.name': 'BUCKET',
440 'cloudflare.r2.operation': 'PutObject',
441 'cloudflare.r2.bucket': 'r2-test',
442 'cloudflare.r2.request.key': 'httpMetadata',
443 'cloudflare.r2.request.http_metadata.content_type': 'text/plain',
444 'cloudflare.r2.request.http_metadata.content_encoding': 'utf-8',
445 'cloudflare.r2.request.http_metadata.content_disposition':
446 'attachment; filename = "basicKey.txt"',
447 'cloudflare.r2.request.http_metadata.content_language': 'en-US',
448 'cloudflare.r2.request.http_metadata.cache_control': 'no-store',
449 'cloudflare.r2.request.http_metadata.cache_expiry': 1000n,
450 'cloudflare.r2.request.size': 7n,
451 'cloudflare.r2.response.success': true,
452 'cloudflare.r2.response.etag': 'objectEtag',
453 'cloudflare.r2.response.size': 123,
454 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
455 'cloudflare.r2.response.storage_class': 'Standard',
456 'cloudflare.r2.response.content_type': 'text/plain',
457 'cloudflare.r2.response.content_encoding': 'utf-8',
458 'cloudflare.r2.response.content_disposition':
459 'attachment; filename = "basicKey.txt"',
460 'cloudflare.r2.response.content_language': 'en-US',
461 'cloudflare.r2.response.cache_control': 'no-store',
462 'cloudflare.r2.response.cache_expiry': '1970-01-01T00:00:01.000Z',
463 'cloudflare.r2.response.custom_metadata': true,
464 closed: true,
465 },
466 {
467 name: 'r2_head',
468 'cloudflare.binding.type': 'r2',
469 'cloudflare.binding.name': 'BUCKET',
470 'cloudflare.r2.operation': 'HeadObject',
471 'cloudflare.r2.bucket': 'r2-test',
472 'cloudflare.r2.request.key': 'httpMetadata',
473 'cloudflare.r2.response.success': true,
474 'cloudflare.r2.response.etag': 'objectEtag',
475 'cloudflare.r2.response.size': 123,
476 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
477 'cloudflare.r2.response.storage_class': 'Standard',
478 'cloudflare.r2.response.content_type': 'text/plain',
479 'cloudflare.r2.response.content_encoding': 'utf-8',
480 'cloudflare.r2.response.content_disposition':
481 'attachment; filename = "basicKey.txt"',
482 'cloudflare.r2.response.content_language': 'en-US',
483 'cloudflare.r2.response.cache_control': 'no-store',
484 'cloudflare.r2.response.cache_expiry': '1970-01-01T00:00:01.000Z',
485 'cloudflare.r2.response.custom_metadata': true,
486 closed: true,
487 },
488 {
489 name: 'r2_get',
490 'cloudflare.binding.type': 'r2',
491 'cloudflare.binding.name': 'BUCKET',
492 'cloudflare.r2.operation': 'GetObject',
493 'cloudflare.r2.bucket': 'r2-test',
494 'cloudflare.r2.request.key': 'httpMetadata',
495 'cloudflare.r2.response.success': true,
496 'cloudflare.r2.response.etag': 'objectEtag',
497 'cloudflare.r2.response.size': 123,
498 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
499 'cloudflare.r2.response.storage_class': 'Standard',
500 'cloudflare.r2.response.content_type': 'text/plain',
501 'cloudflare.r2.response.content_encoding': 'utf-8',
502 'cloudflare.r2.response.content_disposition':
503 'attachment; filename = "basicKey.txt"',
504 'cloudflare.r2.response.content_language': 'en-US',
505 'cloudflare.r2.response.cache_control': 'no-store',
506 'cloudflare.r2.response.cache_expiry': '1970-01-01T00:00:01.000Z',
507 'cloudflare.r2.response.custom_metadata': true,
508 closed: true,
509 },
510 {
511 name: 'r2_list',
512 'cloudflare.binding.type': 'r2',
513 'cloudflare.binding.name': 'BUCKET',
514 'cloudflare.r2.operation': 'ListObjects',
515 'cloudflare.r2.bucket': 'r2-test',
516 'cloudflare.r2.request.prefix': 'httpMeta',
517 'cloudflare.r2.request.include.http_metadata': true,
518 'cloudflare.r2.response.success': true,
519 'cloudflare.r2.response.returned_objects': 1n,
520 'cloudflare.r2.response.delimited_prefixes': 0n,
521 'cloudflare.r2.response.truncated': false,
522 closed: true,
523 },
524 {
525 name: 'r2_createMultipartUpload',
526 'cloudflare.binding.type': 'r2',
527 'cloudflare.binding.name': 'BUCKET',
528 'cloudflare.r2.operation': 'CreateMultipartUpload',
529 'cloudflare.r2.bucket': 'r2-test',
530 'cloudflare.r2.request.key': 'httpMetadata',
531 'cloudflare.r2.request.http_metadata.content_type': 'text/plain',
532 'cloudflare.r2.request.http_metadata.content_encoding': 'utf-8',
533 'cloudflare.r2.request.http_metadata.content_disposition':
534 'attachment; filename = "basicKey.txt"',
535 'cloudflare.r2.request.http_metadata.content_language': 'en-US',
536 'cloudflare.r2.request.http_metadata.cache_control': 'no-store',
537 'cloudflare.r2.request.http_metadata.cache_expiry': 1000n,
538 'cloudflare.r2.response.success': true,
539 'cloudflare.r2.response.upload_id': 'multipartId',
540 closed: true,
541 },
542 {
543 name: 'r2_completeMultipartUpload',
544 'cloudflare.binding.type': 'r2',
545 'cloudflare.binding.name': 'BUCKET',
546 'cloudflare.r2.operation': 'CompleteMultipartUpload',
547 'cloudflare.r2.bucket': 'r2-test',
548 'cloudflare.r2.request.upload_id': 'multipartId',
549 'cloudflare.r2.request.key': 'httpMetadata',
550 'cloudflare.r2.request.uploaded_parts': '',
551 'cloudflare.r2.response.success': true,
552 'cloudflare.r2.response.etag': 'objectEtag',
553 'cloudflare.r2.response.size': 123,
554 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
555 'cloudflare.r2.response.storage_class': 'Standard',
556 'cloudflare.r2.response.content_type': 'text/plain',
557 'cloudflare.r2.response.content_encoding': 'utf-8',
558 'cloudflare.r2.response.content_disposition':
559 'attachment; filename = "basicKey.txt"',
560 'cloudflare.r2.response.content_language': 'en-US',
561 'cloudflare.r2.response.cache_control': 'no-store',
562 'cloudflare.r2.response.cache_expiry': '1970-01-01T00:00:01.000Z',
563 'cloudflare.r2.response.custom_metadata': true,
564 closed: true,
565 },
566 {
567 name: 'r2_put',
568 'cloudflare.binding.type': 'r2',
569 'cloudflare.binding.name': 'BUCKET',
570 'cloudflare.r2.operation': 'PutObject',
571 'cloudflare.r2.bucket': 'r2-test',
572 'cloudflare.r2.request.key': 'customMetadata',
573 'cloudflare.r2.request.custom_metadata': true,
574 'cloudflare.r2.request.size': 7n,
575 'cloudflare.r2.response.success': true,
576 'cloudflare.r2.response.etag': 'objectEtag',
577 'cloudflare.r2.response.size': 123,
578 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
579 'cloudflare.r2.response.storage_class': 'Standard',
580 'cloudflare.r2.response.custom_metadata': true,
581 closed: true,
582 },
583 {
584 name: 'r2_head',
585 'cloudflare.binding.type': 'r2',
586 'cloudflare.binding.name': 'BUCKET',
587 'cloudflare.r2.operation': 'HeadObject',
588 'cloudflare.r2.bucket': 'r2-test',
589 'cloudflare.r2.request.key': 'customMetadata',
590 'cloudflare.r2.response.success': true,
591 'cloudflare.r2.response.etag': 'objectEtag',
592 'cloudflare.r2.response.size': 123,
593 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
594 'cloudflare.r2.response.storage_class': 'Standard',
595 'cloudflare.r2.response.custom_metadata': true,
596 closed: true,
597 },
598 {
599 name: 'r2_get',
600 'cloudflare.binding.type': 'r2',
601 'cloudflare.binding.name': 'BUCKET',
602 'cloudflare.r2.operation': 'GetObject',
603 'cloudflare.r2.bucket': 'r2-test',
604 'cloudflare.r2.request.key': 'customMetadata',
605 'cloudflare.r2.response.success': true,
606 'cloudflare.r2.response.etag': 'objectEtag',
607 'cloudflare.r2.response.size': 123,
608 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
609 'cloudflare.r2.response.storage_class': 'Standard',
610 'cloudflare.r2.response.custom_metadata': true,
611 closed: true,
612 },
613 {
614 name: 'r2_list',
615 'cloudflare.binding.type': 'r2',
616 'cloudflare.binding.name': 'BUCKET',
617 'cloudflare.r2.operation': 'ListObjects',
618 'cloudflare.r2.bucket': 'r2-test',
619 'cloudflare.r2.request.prefix': 'customMeta',
620 'cloudflare.r2.request.include.custom_metadata': true,
621 'cloudflare.r2.response.success': true,
622 'cloudflare.r2.response.returned_objects': 1n,
623 'cloudflare.r2.response.delimited_prefixes': 0n,
624 'cloudflare.r2.response.truncated': false,
625 closed: true,
626 },
627 {
628 name: 'r2_createMultipartUpload',
629 'cloudflare.binding.type': 'r2',
630 'cloudflare.binding.name': 'BUCKET',
631 'cloudflare.r2.operation': 'CreateMultipartUpload',
632 'cloudflare.r2.bucket': 'r2-test',
633 'cloudflare.r2.request.key': 'customMetadata',
634 'cloudflare.r2.request.custom_metadata': true,
635 'cloudflare.r2.response.success': true,
636 'cloudflare.r2.response.upload_id': 'multipartId',
637 closed: true,
638 },
639 {
640 name: 'r2_completeMultipartUpload',
641 'cloudflare.binding.type': 'r2',
642 'cloudflare.binding.name': 'BUCKET',
643 'cloudflare.r2.operation': 'CompleteMultipartUpload',
644 'cloudflare.r2.bucket': 'r2-test',
645 'cloudflare.r2.request.upload_id': 'multipartId',
646 'cloudflare.r2.request.key': 'customMetadata',
647 'cloudflare.r2.request.uploaded_parts': '',
648 'cloudflare.r2.response.success': true,
649 'cloudflare.r2.response.etag': 'objectEtag',
650 'cloudflare.r2.response.size': 123,
651 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
652 'cloudflare.r2.response.storage_class': 'Standard',
653 'cloudflare.r2.response.custom_metadata': true,
654 closed: true,
655 },
656 {
657 name: 'r2_put',
658 'cloudflare.binding.type': 'r2',
659 'cloudflare.binding.name': 'BUCKET',
660 'cloudflare.r2.operation': 'PutObject',
661 'cloudflare.r2.bucket': 'r2-test',
662 'cloudflare.r2.request.key': 'classDefault',
663 'cloudflare.r2.request.size': 7n,
664 'cloudflare.r2.response.success': true,
665 'cloudflare.r2.response.etag': 'objectEtag',
666 'cloudflare.r2.response.size': 123,
667 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
668 'cloudflare.r2.response.storage_class': 'Standard',
669 'cloudflare.r2.response.custom_metadata': true,
670 closed: true,
671 },
672 {
673 name: 'r2_head',
674 'cloudflare.binding.type': 'r2',
675 'cloudflare.binding.name': 'BUCKET',
676 'cloudflare.r2.operation': 'HeadObject',
677 'cloudflare.r2.bucket': 'r2-test',
678 'cloudflare.r2.request.key': 'classDefault',
679 'cloudflare.r2.response.success': true,
680 'cloudflare.r2.response.etag': 'objectEtag',
681 'cloudflare.r2.response.size': 123,
682 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
683 'cloudflare.r2.response.storage_class': 'Standard',
684 'cloudflare.r2.response.custom_metadata': true,
685 closed: true,
686 },
687 {
688 name: 'r2_get',
689 'cloudflare.binding.type': 'r2',
690 'cloudflare.binding.name': 'BUCKET',
691 'cloudflare.r2.operation': 'GetObject',
692 'cloudflare.r2.bucket': 'r2-test',
693 'cloudflare.r2.request.key': 'classDefault',
694 'cloudflare.r2.response.success': true,
695 'cloudflare.r2.response.etag': 'objectEtag',
696 'cloudflare.r2.response.size': 123,
697 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
698 'cloudflare.r2.response.storage_class': 'Standard',
699 'cloudflare.r2.response.custom_metadata': true,
700 closed: true,
701 },
702 {
703 name: 'r2_createMultipartUpload',
704 'cloudflare.binding.type': 'r2',
705 'cloudflare.binding.name': 'BUCKET',
706 'cloudflare.r2.operation': 'CreateMultipartUpload',
707 'cloudflare.r2.bucket': 'r2-test',
708 'cloudflare.r2.request.key': 'classDefault',
709 'cloudflare.r2.response.success': true,
710 'cloudflare.r2.response.upload_id': 'multipartId',
711 closed: true,
712 },
713 {
714 name: 'r2_completeMultipartUpload',
715 'cloudflare.binding.type': 'r2',
716 'cloudflare.binding.name': 'BUCKET',
717 'cloudflare.r2.operation': 'CompleteMultipartUpload',
718 'cloudflare.r2.bucket': 'r2-test',
719 'cloudflare.r2.request.upload_id': 'multipartId',
720 'cloudflare.r2.request.key': 'classDefault',
721 'cloudflare.r2.request.uploaded_parts': '',
722 'cloudflare.r2.response.success': true,
723 'cloudflare.r2.response.etag': 'objectEtag',
724 'cloudflare.r2.response.size': 123,
725 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
726 'cloudflare.r2.response.storage_class': 'Standard',
727 'cloudflare.r2.response.custom_metadata': true,
728 closed: true,
729 },
730 {
731 name: 'r2_put',
732 'cloudflare.binding.type': 'r2',
733 'cloudflare.binding.name': 'BUCKET',
734 'cloudflare.r2.operation': 'PutObject',
735 'cloudflare.r2.bucket': 'r2-test',
736 'cloudflare.r2.request.key': 'classStandard',
737 'cloudflare.r2.request.storage_class': 'Standard',
738 'cloudflare.r2.request.size': 7n,
739 'cloudflare.r2.response.success': true,
740 'cloudflare.r2.response.etag': 'objectEtag',
741 'cloudflare.r2.response.size': 123,
742 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
743 'cloudflare.r2.response.storage_class': 'Standard',
744 'cloudflare.r2.response.custom_metadata': true,
745 closed: true,
746 },
747 {
748 name: 'r2_head',
749 'cloudflare.binding.type': 'r2',
750 'cloudflare.binding.name': 'BUCKET',
751 'cloudflare.r2.operation': 'HeadObject',
752 'cloudflare.r2.bucket': 'r2-test',
753 'cloudflare.r2.request.key': 'classStandard',
754 'cloudflare.r2.response.success': true,
755 'cloudflare.r2.response.etag': 'objectEtag',
756 'cloudflare.r2.response.size': 123,
757 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
758 'cloudflare.r2.response.storage_class': 'Standard',
759 'cloudflare.r2.response.custom_metadata': true,
760 closed: true,
761 },
762 {
763 name: 'r2_get',
764 'cloudflare.binding.type': 'r2',
765 'cloudflare.binding.name': 'BUCKET',
766 'cloudflare.r2.operation': 'GetObject',
767 'cloudflare.r2.bucket': 'r2-test',
768 'cloudflare.r2.request.key': 'classStandard',
769 'cloudflare.r2.response.success': true,
770 'cloudflare.r2.response.etag': 'objectEtag',
771 'cloudflare.r2.response.size': 123,
772 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
773 'cloudflare.r2.response.storage_class': 'Standard',
774 'cloudflare.r2.response.custom_metadata': true,
775 closed: true,
776 },
777 {
778 name: 'r2_createMultipartUpload',
779 'cloudflare.binding.type': 'r2',
780 'cloudflare.binding.name': 'BUCKET',
781 'cloudflare.r2.operation': 'CreateMultipartUpload',
782 'cloudflare.r2.bucket': 'r2-test',
783 'cloudflare.r2.request.key': 'classStandard',
784 'cloudflare.r2.request.storage_class': 'Standard',
785 'cloudflare.r2.response.success': true,
786 'cloudflare.r2.response.upload_id': 'multipartId',
787 closed: true,
788 },
789 {
790 name: 'r2_completeMultipartUpload',
791 'cloudflare.binding.type': 'r2',
792 'cloudflare.binding.name': 'BUCKET',
793 'cloudflare.r2.operation': 'CompleteMultipartUpload',
794 'cloudflare.r2.bucket': 'r2-test',
795 'cloudflare.r2.request.upload_id': 'multipartId',
796 'cloudflare.r2.request.key': 'classStandard',
797 'cloudflare.r2.request.uploaded_parts': '',
798 'cloudflare.r2.response.success': true,
799 'cloudflare.r2.response.etag': 'objectEtag',
800 'cloudflare.r2.response.size': 123,
801 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
802 'cloudflare.r2.response.storage_class': 'Standard',
803 'cloudflare.r2.response.custom_metadata': true,
804 closed: true,
805 },
806 {
807 name: 'r2_put',
808 'cloudflare.binding.type': 'r2',
809 'cloudflare.binding.name': 'BUCKET',
810 'cloudflare.r2.operation': 'PutObject',
811 'cloudflare.r2.bucket': 'r2-test',
812 'cloudflare.r2.request.key': 'classInfrequentAccess',
813 'cloudflare.r2.request.storage_class': 'InfrequentAccess',
814 'cloudflare.r2.request.size': 7n,
815 'cloudflare.r2.response.success': true,
816 'cloudflare.r2.response.etag': 'objectEtag',
817 'cloudflare.r2.response.size': 123,
818 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
819 'cloudflare.r2.response.storage_class': 'InfrequentAccess',
820 'cloudflare.r2.response.custom_metadata': true,
821 closed: true,
822 },
823 {
824 name: 'r2_head',
825 'cloudflare.binding.type': 'r2',
826 'cloudflare.binding.name': 'BUCKET',
827 'cloudflare.r2.operation': 'HeadObject',
828 'cloudflare.r2.bucket': 'r2-test',
829 'cloudflare.r2.request.key': 'classInfrequentAccess',
830 'cloudflare.r2.response.success': true,
831 'cloudflare.r2.response.etag': 'objectEtag',
832 'cloudflare.r2.response.size': 123,
833 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
834 'cloudflare.r2.response.storage_class': 'InfrequentAccess',
835 'cloudflare.r2.response.custom_metadata': true,
836 closed: true,
837 },
838 {
839 name: 'r2_get',
840 'cloudflare.binding.type': 'r2',
841 'cloudflare.binding.name': 'BUCKET',
842 'cloudflare.r2.operation': 'GetObject',
843 'cloudflare.r2.bucket': 'r2-test',
844 'cloudflare.r2.request.key': 'classInfrequentAccess',
845 'cloudflare.r2.response.success': true,
846 'cloudflare.r2.response.etag': 'objectEtag',
847 'cloudflare.r2.response.size': 123,
848 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
849 'cloudflare.r2.response.storage_class': 'InfrequentAccess',
850 'cloudflare.r2.response.custom_metadata': true,
851 closed: true,
852 },
853 {
854 name: 'r2_createMultipartUpload',
855 'cloudflare.binding.type': 'r2',
856 'cloudflare.binding.name': 'BUCKET',
857 'cloudflare.r2.operation': 'CreateMultipartUpload',
858 'cloudflare.r2.bucket': 'r2-test',
859 'cloudflare.r2.request.key': 'classInfrequentAccess',
860 'cloudflare.r2.request.storage_class': 'InfrequentAccess',
861 'cloudflare.r2.response.success': true,
862 'cloudflare.r2.response.upload_id': 'multipartId',
863 closed: true,
864 },
865 {
866 name: 'r2_completeMultipartUpload',
867 'cloudflare.binding.type': 'r2',
868 'cloudflare.binding.name': 'BUCKET',
869 'cloudflare.r2.operation': 'CompleteMultipartUpload',
870 'cloudflare.r2.bucket': 'r2-test',
871 'cloudflare.r2.request.upload_id': 'multipartId',
872 'cloudflare.r2.request.key': 'classInfrequentAccess',
873 'cloudflare.r2.request.uploaded_parts': '',
874 'cloudflare.r2.response.success': true,
875 'cloudflare.r2.response.etag': 'objectEtag',
876 'cloudflare.r2.response.size': 123,
877 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
878 'cloudflare.r2.response.storage_class': 'InfrequentAccess',
879 'cloudflare.r2.response.custom_metadata': true,
880 closed: true,
881 },
882 {
883 name: 'r2_put',
884 'cloudflare.binding.type': 'r2',
885 'cloudflare.binding.name': 'BUCKET',
886 'cloudflare.r2.operation': 'PutObject',
887 'cloudflare.r2.bucket': 'r2-test',
888 'cloudflare.r2.request.key': 'ssec',
889 'cloudflare.r2.request.ssec_key': true,
890 'cloudflare.r2.request.size': 7n,
891 'cloudflare.r2.response.success': true,
892 'cloudflare.r2.response.etag': 'objectEtag',
893 'cloudflare.r2.response.size': 123,
894 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
895 'cloudflare.r2.response.storage_class': 'Standard',
896 'cloudflare.r2.response.ssec_key': true,
897 'cloudflare.r2.response.custom_metadata': true,
898 closed: true,
899 },
900 {
901 name: 'r2_get',
902 'cloudflare.binding.type': 'r2',
903 'cloudflare.binding.name': 'BUCKET',
904 'cloudflare.r2.operation': 'GetObject',
905 'cloudflare.r2.bucket': 'r2-test',
906 'cloudflare.r2.request.key': 'ssec',
907 'cloudflare.r2.request.ssec_key': true,
908 'cloudflare.r2.response.success': true,
909 'cloudflare.r2.response.etag': 'objectEtag',
910 'cloudflare.r2.response.size': 123,
911 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
912 'cloudflare.r2.response.storage_class': 'Standard',
913 'cloudflare.r2.response.ssec_key': true,
914 'cloudflare.r2.response.custom_metadata': true,
915 closed: true,
916 },
917 {
918 name: 'r2_head',
919 'cloudflare.binding.type': 'r2',
920 'cloudflare.binding.name': 'BUCKET',
921 'cloudflare.r2.operation': 'HeadObject',
922 'cloudflare.r2.bucket': 'r2-test',
923 'cloudflare.r2.request.key': 'ssec',
924 'cloudflare.r2.response.success': true,
925 'cloudflare.r2.response.etag': 'objectEtag',
926 'cloudflare.r2.response.size': 123,
927 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
928 'cloudflare.r2.response.storage_class': 'Standard',
929 'cloudflare.r2.response.ssec_key': true,
930 'cloudflare.r2.response.custom_metadata': true,
931 closed: true,
932 },
933 {
934 name: 'r2_createMultipartUpload',
935 'cloudflare.binding.type': 'r2',
936 'cloudflare.binding.name': 'BUCKET',
937 'cloudflare.r2.operation': 'CreateMultipartUpload',
938 'cloudflare.r2.bucket': 'r2-test',
939 'cloudflare.r2.request.key': 'ssecMultipart',
940 'cloudflare.r2.request.ssec_key': true,
941 'cloudflare.r2.response.success': true,
942 'cloudflare.r2.response.upload_id': 'multipartId',
943 closed: true,
944 },
945 {
946 name: 'r2_uploadPart',
947 'cloudflare.binding.type': 'r2',
948 'cloudflare.binding.name': 'BUCKET',
949 'cloudflare.r2.operation': 'UploadPart',
950 'cloudflare.r2.bucket': 'r2-test',
951 'cloudflare.r2.request.upload_id': 'multipartId',
952 'cloudflare.r2.request.part_number': 1n,
953 'cloudflare.r2.request.key': 'ssecMultipart',
954 'cloudflare.r2.request.ssec_key': true,
955 'cloudflare.r2.request.size': 3n,
956 'cloudflare.r2.response.success': true,
957 'cloudflare.r2.response.etag': 'partEtag',
958 closed: true,
959 },
960 {
961 name: 'r2_completeMultipartUpload',
962 'cloudflare.binding.type': 'r2',
963 'cloudflare.binding.name': 'BUCKET',
964 'cloudflare.r2.operation': 'CompleteMultipartUpload',
965 'cloudflare.r2.bucket': 'r2-test',
966 'cloudflare.r2.request.upload_id': 'multipartId',
967 'cloudflare.r2.request.key': 'ssecMultipart',
968 'cloudflare.r2.request.uploaded_parts': '1',
969 'cloudflare.r2.response.success': true,
970 'cloudflare.r2.response.etag': 'objectEtag',
971 'cloudflare.r2.response.size': 123,
972 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
973 'cloudflare.r2.response.storage_class': 'Standard',
974 'cloudflare.r2.response.ssec_key': true,
975 'cloudflare.r2.response.custom_metadata': true,
976 closed: true,
977 },
978 {
979 name: 'r2_put',
980 'cloudflare.binding.type': 'r2',
981 'cloudflare.binding.name': 'BUCKET',
982 'cloudflare.r2.operation': 'PutObject',
983 'cloudflare.r2.bucket': 'r2-test',
984 'cloudflare.r2.request.key': 'ssec',
985 'cloudflare.r2.request.ssec_key': true,
986 'cloudflare.r2.request.size': 7n,
987 'cloudflare.r2.response.success': true,
988 'cloudflare.r2.response.etag': 'objectEtag',
989 'cloudflare.r2.response.size': 123,
990 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
991 'cloudflare.r2.response.storage_class': 'Standard',
992 'cloudflare.r2.response.ssec_key': true,
993 'cloudflare.r2.response.custom_metadata': true,
994 closed: true,
995 },
996 {
997 name: 'r2_get',
998 'cloudflare.binding.type': 'r2',
999 'cloudflare.binding.name': 'BUCKET',
1000 'cloudflare.r2.operation': 'GetObject',
1001 'cloudflare.r2.bucket': 'r2-test',
1002 'cloudflare.r2.request.key': 'ssec',
1003 'cloudflare.r2.request.ssec_key': true,
1004 'cloudflare.r2.response.success': true,
1005 'cloudflare.r2.response.etag': 'objectEtag',
1006 'cloudflare.r2.response.size': 123,
1007 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
1008 'cloudflare.r2.response.storage_class': 'Standard',
1009 'cloudflare.r2.response.ssec_key': true,
1010 'cloudflare.r2.response.custom_metadata': true,
1011 closed: true,
1012 },
1013 {
1014 name: 'r2_head',
1015 'cloudflare.binding.type': 'r2',
1016 'cloudflare.binding.name': 'BUCKET',
1017 'cloudflare.r2.operation': 'HeadObject',
1018 'cloudflare.r2.bucket': 'r2-test',
1019 'cloudflare.r2.request.key': 'ssec',
1020 'cloudflare.r2.response.success': true,
1021 'cloudflare.r2.response.etag': 'objectEtag',
1022 'cloudflare.r2.response.size': 123,
1023 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
1024 'cloudflare.r2.response.storage_class': 'Standard',
1025 'cloudflare.r2.response.ssec_key': true,
1026 'cloudflare.r2.response.custom_metadata': true,
1027 closed: true,
1028 },
1029 {
1030 name: 'r2_createMultipartUpload',
1031 'cloudflare.binding.type': 'r2',
1032 'cloudflare.binding.name': 'BUCKET',
1033 'cloudflare.r2.operation': 'CreateMultipartUpload',
1034 'cloudflare.r2.bucket': 'r2-test',
1035 'cloudflare.r2.request.key': 'ssecMultipart',
1036 'cloudflare.r2.request.ssec_key': true,
1037 'cloudflare.r2.response.success': true,
1038 'cloudflare.r2.response.upload_id': 'multipartId',
1039 closed: true,
1040 },
1041 {
1042 name: 'r2_uploadPart',
1043 'cloudflare.binding.type': 'r2',
1044 'cloudflare.binding.name': 'BUCKET',
1045 'cloudflare.r2.operation': 'UploadPart',
1046 'cloudflare.r2.bucket': 'r2-test',
1047 'cloudflare.r2.request.upload_id': 'multipartId',
1048 'cloudflare.r2.request.part_number': 1n,
1049 'cloudflare.r2.request.key': 'ssecMultipart',
1050 'cloudflare.r2.request.ssec_key': true,
1051 'cloudflare.r2.request.size': 3n,
1052 'cloudflare.r2.response.success': true,
1053 'cloudflare.r2.response.etag': 'partEtag',
1054 closed: true,
1055 },
1056 {
1057 name: 'r2_completeMultipartUpload',
1058 'cloudflare.binding.type': 'r2',
1059 'cloudflare.binding.name': 'BUCKET',
1060 'cloudflare.r2.operation': 'CompleteMultipartUpload',
1061 'cloudflare.r2.bucket': 'r2-test',
1062 'cloudflare.r2.request.upload_id': 'multipartId',
1063 'cloudflare.r2.request.key': 'ssecMultipart',
1064 'cloudflare.r2.request.uploaded_parts': '1',
1065 'cloudflare.r2.response.success': true,
1066 'cloudflare.r2.response.etag': 'objectEtag',
1067 'cloudflare.r2.response.size': 123,
1068 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
1069 'cloudflare.r2.response.storage_class': 'Standard',
1070 'cloudflare.r2.response.ssec_key': true,
1071 'cloudflare.r2.response.custom_metadata': true,
1072 closed: true,
1073 },
1074 {
1075 name: 'r2_put',
1076 'cloudflare.binding.type': 'r2',
1077 'cloudflare.binding.name': 'BUCKET',
1078 'cloudflare.r2.operation': 'PutObject',
1079 'cloudflare.r2.bucket': 'r2-test',
1080 'cloudflare.r2.request.key': 'multipleChecksums',
1081 'cloudflare.r2.request.checksum.type': 'md5',
1082 'cloudflare.r2.request.checksum.value':
1083 '9a0364b9e99bb480dd25e1f0284c8555',
1084 'cloudflare.r2.request.size': 7n,
1085 'cloudflare.r2.response.success': true,
1086 'cloudflare.r2.response.etag': 'objectEtag',
1087 'cloudflare.r2.response.size': 123,
1088 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
1089 'cloudflare.r2.response.checksum.md5':
1090 '9a0364b9e99bb480dd25e1f0284c8555',
1091 'cloudflare.r2.response.checksum.sha1':
1092 '2a0364b9e99bb480dd25e1f0284c855511223344',
1093 'cloudflare.r2.response.checksum.sha256':
1094 '3a0364b9e99bb480dd25e1f0284c8555112233445566778899aabbccddeeff00',
1095 'cloudflare.r2.response.storage_class': 'Standard',
1096 'cloudflare.r2.response.custom_metadata': true,
1097 closed: true,
1098 },
1099 {
1100 name: 'r2_head',
1101 'cloudflare.binding.type': 'r2',
1102 'cloudflare.binding.name': 'BUCKET',
1103 'cloudflare.r2.operation': 'HeadObject',
1104 'cloudflare.r2.bucket': 'r2-test',
1105 'cloudflare.r2.request.key': 'multipleChecksums',
1106 'cloudflare.r2.response.success': true,
1107 'cloudflare.r2.response.etag': 'objectEtag',
1108 'cloudflare.r2.response.size': 123,
1109 'cloudflare.r2.response.uploaded': '2024-08-27T14:00:57.918Z',
1110 'cloudflare.r2.response.checksum.md5':
1111 '9a0364b9e99bb480dd25e1f0284c8555',
1112 'cloudflare.r2.response.checksum.sha1':
1113 '2a0364b9e99bb480dd25e1f0284c855511223344',
1114 'cloudflare.r2.response.checksum.sha256':
1115 '3a0364b9e99bb480dd25e1f0284c8555112233445566778899aabbccddeeff00',
1116 'cloudflare.r2.response.storage_class': 'Standard',
1117 'cloudflare.r2.response.custom_metadata': true,
1118 closed: true,
1119 },
1120 ];
1121 
1122 assert.deepStrictEqual(received, expected);
1123 },
1124};