From 776c9686e4756843a1671598e279d74c10e9fb66 Mon Sep 17 00:00:00 2001 From: necessarylion Date: Mon, 9 Mar 2026 10:30:37 +0700 Subject: [PATCH 1/2] Fix missing contentLength on s3 driver listAll method --- drivers/s3/driver.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/s3/driver.ts b/drivers/s3/driver.ts index 1d758d9..4e0f910 100644 --- a/drivers/s3/driver.ts +++ b/drivers/s3/driver.ts @@ -31,6 +31,7 @@ import { type DeleteObjectCommandInput, type ListObjectsV2CommandInput, type DeleteObjectsCommandInput, + type _Object, } from '@aws-sdk/client-s3' import debug from './debug.js' @@ -82,7 +83,7 @@ export class S3Driver implements DriverContract { #createFileMetaData(apiFile: HeadObjectOutput) { const metaData: ObjectMetaData = { contentType: apiFile.ContentType, - contentLength: apiFile.ContentLength!, + contentLength: apiFile.ContentLength ?? (apiFile as _Object).Size ?? 0, etag: apiFile.ETag!, lastModified: new Date(apiFile.LastModified!), } From 6bafa7540181ed877a6f65131f1f07360dd03936 Mon Sep 17 00:00:00 2001 From: necessarylion Date: Wed, 18 Mar 2026 10:43:51 +0700 Subject: [PATCH 2/2] test: verify contentLength in listAll metadata for S3 driver --- tests/drivers/s3/list_all.spec.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/drivers/s3/list_all.spec.ts b/tests/drivers/s3/list_all.spec.ts index 202135f..b04a61b 100644 --- a/tests/drivers/s3/list_all.spec.ts +++ b/tests/drivers/s3/list_all.spec.ts @@ -99,6 +99,14 @@ test.group('S3 Driver | listAll | root dir', (group) => { } const { objects } = await s3fs.listAll('/', { recursive: true }) + + for (const object of objects) { + if (object.isFile) { + const metadata = await object.getMetaData() + assert.equal(metadata.contentLength, 11) + } + } + assert.includeDeepMembers(Array.from(objects), [ { isDirectory: false,