From 31cb9c865f6c51e9dae940330b38f016ca75bc8a Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Mon, 16 Oct 2023 08:40:24 -0400 Subject: [PATCH] fix: Assumption that url passed to storeFromUrl will send content-length header --- server/storage/files/BaseStorage.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/server/storage/files/BaseStorage.ts b/server/storage/files/BaseStorage.ts index accd21279..d6b72c7f3 100644 --- a/server/storage/files/BaseStorage.ts +++ b/server/storage/files/BaseStorage.ts @@ -131,13 +131,12 @@ export default abstract class BaseStorage { return; } - let buffer, contentLength, contentType; + let buffer, contentType; const match = url.match(/data:(.*);base64,(.*)/); if (match) { contentType = match[1]; buffer = Buffer.from(match[2], "base64"); - contentLength = buffer.byteLength; } else { try { const res = await fetch(url, { @@ -155,7 +154,6 @@ export default abstract class BaseStorage { contentType = res.headers.get("content-type") ?? "application/octet-stream"; - contentLength = parseInt(res.headers.get("content-length") ?? "0", 10); } catch (err) { Logger.error("Error fetching URL to upload", err, { url, @@ -166,6 +164,7 @@ export default abstract class BaseStorage { } } + const contentLength = buffer.byteLength; if (contentLength === 0) { return; } @@ -173,7 +172,6 @@ export default abstract class BaseStorage { try { const result = await this.store({ body: buffer, - contentLength, contentType, key, acl, @@ -182,8 +180,8 @@ export default abstract class BaseStorage { return result ? { url: result, - contentType, contentLength, + contentType, } : undefined; } catch (err) {