From ca64f07041de7467bae6154dde5f0643b23d38d6 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 26 Jul 2024 15:26:32 +0100 Subject: [PATCH] add s3 custom url --- CONTRIBUTING.md | 1 + docker/.env.example | 3 ++- i18n/CONTRIBUTING-ZH.md | 1 + packages/components/src/storageUtils.ts | 5 ++++- packages/server/.env.example | 3 ++- packages/server/src/commands/start.ts | 4 +++- 6 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4d1795ad151..777774d39c7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -155,6 +155,7 @@ Flowise support different environment variables to configure your instance. You | S3_STORAGE_ACCESS_KEY_ID | AWS Access Key | String | | | S3_STORAGE_SECRET_ACCESS_KEY | AWS Secret Key | String | | | S3_STORAGE_REGION | Region for S3 bucket | String | | +| S3_ENDPOINT_URL | Custom Endpoint for S3 | String | | You can also specify the env variables when using `npx`. For example: diff --git a/docker/.env.example b/docker/.env.example index 5e368f96858..173c3205636 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -46,4 +46,5 @@ BLOB_STORAGE_PATH=/root/.flowise/storage # S3_STORAGE_BUCKET_NAME=flowise # S3_STORAGE_ACCESS_KEY_ID= # S3_STORAGE_SECRET_ACCESS_KEY= -# S3_STORAGE_REGION=us-west-2 \ No newline at end of file +# S3_STORAGE_REGION=us-west-2 +# S3_ENDPOINT_URL= \ No newline at end of file diff --git a/i18n/CONTRIBUTING-ZH.md b/i18n/CONTRIBUTING-ZH.md index bbf5db828ec..84e9c9a5285 100644 --- a/i18n/CONTRIBUTING-ZH.md +++ b/i18n/CONTRIBUTING-ZH.md @@ -148,6 +148,7 @@ Flowise 支持不同的环境变量来配置您的实例。您可以在 `package | S3_STORAGE_ACCESS_KEY_ID | AWS 访问密钥 (Access Key) | 字符串 | | | S3_STORAGE_SECRET_ACCESS_KEY | AWS 密钥 (Secret Key) | 字符串 | | | S3_STORAGE_REGION | S3 存储地区 | 字符串 | | +| S3_ENDPOINT_URL | S3 端点 URL | 字符串 | | 您也可以在使用 `npx` 时指定环境变量。例如: diff --git a/packages/components/src/storageUtils.ts b/packages/components/src/storageUtils.ts index 483eb9ae9b0..8363ebf10f1 100644 --- a/packages/components/src/storageUtils.ts +++ b/packages/components/src/storageUtils.ts @@ -318,6 +318,8 @@ export const getS3Config = () => { const secretAccessKey = process.env.S3_STORAGE_SECRET_ACCESS_KEY const region = process.env.S3_STORAGE_REGION const Bucket = process.env.S3_STORAGE_BUCKET_NAME + const customURL = process.env.S3_ENDPOINT_URL + if (!region || !Bucket) { throw new Error('S3 storage configuration is missing') } @@ -332,7 +334,8 @@ export const getS3Config = () => { const s3Client = new S3Client({ credentials, - region + region, + endpoint: customURL }) return { s3Client, Bucket } } diff --git a/packages/server/.env.example b/packages/server/.env.example index a8550532154..b322c760a41 100644 --- a/packages/server/.env.example +++ b/packages/server/.env.example @@ -46,4 +46,5 @@ PORT=3000 # S3_STORAGE_BUCKET_NAME=flowise # S3_STORAGE_ACCESS_KEY_ID= # S3_STORAGE_SECRET_ACCESS_KEY= -# S3_STORAGE_REGION=us-west-2 \ No newline at end of file +# S3_STORAGE_REGION=us-west-2 +# S3_ENDPOINT_URL= \ No newline at end of file diff --git a/packages/server/src/commands/start.ts b/packages/server/src/commands/start.ts index d50133e432b..e537a30666d 100644 --- a/packages/server/src/commands/start.ts +++ b/packages/server/src/commands/start.ts @@ -52,7 +52,8 @@ export default class Start extends Command { S3_STORAGE_BUCKET_NAME: Flags.string(), S3_STORAGE_ACCESS_KEY_ID: Flags.string(), S3_STORAGE_SECRET_ACCESS_KEY: Flags.string(), - S3_STORAGE_REGION: Flags.string() + S3_STORAGE_REGION: Flags.string(), + S3_ENDPOINT_URL: Flags.string() } async stopProcess() { @@ -146,6 +147,7 @@ export default class Start extends Command { if (flags.S3_STORAGE_ACCESS_KEY_ID) process.env.S3_STORAGE_ACCESS_KEY_ID = flags.S3_STORAGE_ACCESS_KEY_ID if (flags.S3_STORAGE_SECRET_ACCESS_KEY) process.env.S3_STORAGE_SECRET_ACCESS_KEY = flags.S3_STORAGE_SECRET_ACCESS_KEY if (flags.S3_STORAGE_REGION) process.env.S3_STORAGE_REGION = flags.S3_STORAGE_REGION + if (flags.S3_ENDPOINT_URL) process.env.S3_ENDPOINT_URL = flags.S3_ENDPOINT_URL await (async () => { try {