diff --git a/services/datalake/pod-datalake/src/handlers/blob.ts b/services/datalake/pod-datalake/src/handlers/blob.ts index 73e12bc023..5def00c4ce 100644 --- a/services/datalake/pod-datalake/src/handlers/blob.ts +++ b/services/datalake/pod-datalake/src/handlers/blob.ts @@ -136,9 +136,8 @@ export async function handleBlobDelete ( try { await datalake.delete(ctx, workspace, name) res.status(204).send() - } catch (err: any) { - const message = err instanceof Error ? err.message : String(err) - ctx.error('failed to delete blob', { message }) + } catch (error: any) { + ctx.error('failed to delete blob', { error }) res.status(500).send() } } @@ -155,9 +154,8 @@ export async function handleBlobDeleteList ( try { await datalake.delete(ctx, workspace, body.names) res.status(204).send() - } catch (err: any) { - const message = err instanceof Error ? err.message : String(err) - ctx.error('failed to delete blobs', { message }) + } catch (error: any) { + ctx.error('failed to delete blobs', { error }) res.status(500).send() } } @@ -174,9 +172,8 @@ export async function handleBlobSetParent ( try { await datalake.setParent(ctx, workspace, name, parent) res.status(204).send() - } catch (err: any) { - const message = err instanceof Error ? err.message : String(err) - ctx.error('failed to delete blob', { message }) + } catch (error: any) { + ctx.error('failed to delete blob', { error }) res.status(500).send() } } @@ -229,7 +226,7 @@ export async function handleUploadFormData ( return { key, metadata } } catch (err: any) { const error = err instanceof Error ? err.message : String(err) - ctx.error('failed to upload blob', { error }) + ctx.error('failed to upload blob', { error: err }) return { key, error } } }) diff --git a/services/datalake/pod-datalake/src/s3/bucket.ts b/services/datalake/pod-datalake/src/s3/bucket.ts index b628a65ddb..5d5879159e 100644 --- a/services/datalake/pod-datalake/src/s3/bucket.ts +++ b/services/datalake/pod-datalake/src/s3/bucket.ts @@ -102,7 +102,7 @@ class S3BucketImpl implements S3Bucket { } } - if (options.contentLength < 5 * 1024 * 1024) { + if (Buffer.isBuffer(body)) { const result = await ctx.with('s3.putObject', {}, () => this.client.putObject(command)) return { diff --git a/services/datalake/pod-datalake/src/s3/client.ts b/services/datalake/pod-datalake/src/s3/client.ts index da8497fac9..df7ed583ad 100644 --- a/services/datalake/pod-datalake/src/s3/client.ts +++ b/services/datalake/pod-datalake/src/s3/client.ts @@ -27,6 +27,7 @@ export interface S3Options { export function createClient (opt: S3Options): S3 { return new S3({ + forcePathStyle: true, endpoint: opt.endpoint, credentials: { accessKeyId: opt.accessKey,