diff --git a/packages/backend-core/src/utils/utils.ts b/packages/backend-core/src/utils/utils.ts index 30cf55b149..7f2e25b6d4 100644 --- a/packages/backend-core/src/utils/utils.ts +++ b/packages/backend-core/src/utils/utils.ts @@ -247,3 +247,7 @@ export function hasCircularStructure(json: any) { } return false } + +export function urlHasProtocol(url: string): boolean { + return !!url.match(/^.+:\/\/.+$/) +} diff --git a/packages/server/package.json b/packages/server/package.json index 9a70ecba9c..37df7138d7 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -159,6 +159,7 @@ "@types/tar": "6.1.5", "@types/tmp": "0.2.6", "@types/uuid": "8.3.4", + "@smithy/types": "4.0.0", "chance": "^1.1.12", "copyfiles": "2.4.1", "docker-compose": "0.23.17", diff --git a/packages/server/src/api/controllers/static/index.ts b/packages/server/src/api/controllers/static/index.ts index 327ce5369f..6b8ecda0d9 100644 --- a/packages/server/src/api/controllers/static/index.ts +++ b/packages/server/src/api/controllers/static/index.ts @@ -340,7 +340,7 @@ export const getSignedUploadURL = async function ( } try { let endpoint = datasource?.config?.endpoint - if (endpoint && !endpoint.startsWith("http")) { + if (endpoint && !utils.urlHasProtocol(endpoint)) { endpoint = `https://${endpoint}` } const s3 = new S3({