Files
FastGPT/packages/service/common/s3/constants.ts
T
Finley Ge 470eeca060 V4.14.6 (#6263)
* feat: wecom integration (#6234)

* wip: wecom

* feat: template filter by user tag

* feat: wecom pay

* fix: some bug

* fix: zod error

* feat: bill

* fix: bill toast

* feat: forbidden downgrade plan button

* chore(fe): wecom zone

* chore: use queue to delete team instead of a session

* chore: adjust

* feat: wecom bill logic refactor

* perf: plan

* perf: plan

* fix: i18n

* chore: adjust

* feat: adjust

* feat: add wecom config

* perf: wecom app template recommendation & system tool preinstall

* perf: some variable and tip

* update create bill api schema

* update create bill api schema

* update create bill api schema

* feat: wecom

* chore: adjust

* fix: ts

* perf: condition order

* perf: condition order

---------

Co-authored-by: archer <545436317@qq.com>

* feat: system tool config tags (#6257)

* fix: system secret (#6259)

* fix: system secret

* chore: update docs

* chore: merge main (#6264)

* feat: wecom integration (#6234)

* wip: wecom

* feat: template filter by user tag

* feat: wecom pay

* fix: some bug

* fix: zod error

* feat: bill

* fix: bill toast

* feat: forbidden downgrade plan button

* chore(fe): wecom zone

* chore: use queue to delete team instead of a session

* chore: adjust

* feat: wecom bill logic refactor

* perf: plan

* perf: plan

* fix: i18n

* chore: adjust

* feat: adjust

* feat: add wecom config

* perf: wecom app template recommendation & system tool preinstall

* perf: some variable and tip

* update create bill api schema

* update create bill api schema

* update create bill api schema

* feat: wecom

* chore: adjust

* fix: ts

* perf: condition order

* perf: condition order

---------

Co-authored-by: archer <545436317@qq.com>

* feat: system tool config tags (#6257)

* fix: system secret (#6259)

* fix: system secret

* chore: update docs

---------

Co-authored-by: archer <545436317@qq.com>

* chore: update version number (#6266)

* fix: price status (#6279)

* fix: back button (#6281)

* team plan max file size & count (#6258)

* team plan max file size & count

* fix

* fix

* fix

* perf: presign url

* remove empty check

* remove empty check

* fix: ts

* fix: doc

* fix presign file

* perf: code

* perf: i18n

* fix: remove maxSize attribute

---------

Co-authored-by: archer <545436317@qq.com>
Co-authored-by: Finley Ge <finleyge@fastgpt.io>

* feat: marketplace batch update (#6299)

* feat: wecom integration (#6234)

* wip: wecom

* feat: template filter by user tag

* feat: wecom pay

* fix: some bug

* fix: zod error

* feat: bill

* fix: bill toast

* feat: forbidden downgrade plan button

* chore(fe): wecom zone

* chore: use queue to delete team instead of a session

* chore: adjust

* feat: wecom bill logic refactor

* perf: plan

* perf: plan

* fix: i18n

* chore: adjust

* feat: adjust

* feat: add wecom config

* perf: wecom app template recommendation & system tool preinstall

* perf: some variable and tip

* update create bill api schema

* update create bill api schema

* update create bill api schema

* feat: wecom

* chore: adjust

* fix: ts

* perf: condition order

* perf: condition order

---------

Co-authored-by: archer <545436317@qq.com>

* feat: system tool config tags (#6257)

* fix: system secret (#6259)

* fix: system secret

* chore: update docs

* chore: merge main (#6264)

* feat: wecom integration (#6234)

* wip: wecom

* feat: template filter by user tag

* feat: wecom pay

* fix: some bug

* fix: zod error

* feat: bill

* fix: bill toast

* feat: forbidden downgrade plan button

* chore(fe): wecom zone

* chore: use queue to delete team instead of a session

* chore: adjust

* feat: wecom bill logic refactor

* perf: plan

* perf: plan

* fix: i18n

* chore: adjust

* feat: adjust

* feat: add wecom config

* perf: wecom app template recommendation & system tool preinstall

* perf: some variable and tip

* update create bill api schema

* update create bill api schema

* update create bill api schema

* feat: wecom

* chore: adjust

* fix: ts

* perf: condition order

* perf: condition order

---------

Co-authored-by: archer <545436317@qq.com>

* feat: system tool config tags (#6257)

* fix: system secret (#6259)

* fix: system secret

* chore: update docs

---------

Co-authored-by: archer <545436317@qq.com>

* fix: custom domain limitation (#6265)

* chore: update version number (#6266)

* fix: price status (#6279)

* fix: back button (#6281)

* chore/rebase main (#6295)

* chore(deps): bump undici from 7.16.0 to 7.18.2 (#6272)

Bumps [undici](https://github.com/nodejs/undici) from 7.16.0 to 7.18.2.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.16.0...v7.18.2)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.18.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump undici in /plugins/webcrawler/SPIDER (#6273)

Bumps [undici](https://github.com/nodejs/undici) from 6.21.3 to 6.23.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.21.3...v6.23.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.23.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump tar from 7.4.3 to 7.5.3 in /document (#6282)

Bumps [tar](https://github.com/isaacs/node-tar) from 7.4.3 to 7.5.3.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.4.3...v7.5.3)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* perf: remove request invalid field (#6283)

* V4.14.5.1 dev (#6290)

* chore: cherry pick some commits from v4.14.6-dev (#6287)

* fix: custom domain limitation (#6265)

* fix: system secret (#6259)

* fix: system secret

* chore: update docs

* chore: docs

* fix password variable & datetime picker (#6276)

* fix password variable & datetime picker

* doc

* chore: cherry pick some commits from v4.14.6-dev (#6287)

* fix: custom domain limitation (#6265)

* fix: system secret (#6259)

* fix: system secret

* chore: update docs

* chore: docs

* doc

* chore: docs

---------

Co-authored-by: Finley Ge <32237950+FinleyGe@users.noreply.github.com>
Co-authored-by: Finley Ge <finleyge@fastgpt.io>

* perf: extname computed (#6285)

* perf: extname computed

* chore: handle hash or query flags

---------

Co-authored-by: Finley Ge <finleyge@fastgpt.io>

* chore: docs (#6291)

---------

Co-authored-by: heheer <heheer@sealos.io>
Co-authored-by: Archer <545436317@qq.com>

* chore: deploy scripts (#6293)

* docs: 41451 upgrade doc (#6294)

* feat: wecom integration (#6234)

* wip: wecom

* feat: template filter by user tag

* feat: wecom pay

* fix: some bug

* fix: zod error

* feat: bill

* fix: bill toast

* feat: forbidden downgrade plan button

* chore(fe): wecom zone

* chore: use queue to delete team instead of a session

* chore: adjust

* feat: wecom bill logic refactor

* perf: plan

* perf: plan

* fix: i18n

* chore: adjust

* feat: adjust

* feat: add wecom config

* perf: wecom app template recommendation & system tool preinstall

* perf: some variable and tip

* update create bill api schema

* update create bill api schema

* update create bill api schema

* feat: wecom

* chore: adjust

* fix: ts

* perf: condition order

* perf: condition order

---------

Co-authored-by: archer <545436317@qq.com>

* feat: system tool config tags (#6257)

* fix: price status (#6279)

* fix: back button (#6281)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Archer <545436317@qq.com>
Co-authored-by: heheer <heheer@sealos.io>

* feat: marketplace batch update

* chore: components reuse

* fix: test case

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: archer <545436317@qq.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: heheer <heheer@sealos.io>

* fix: upload file size limit && batch update plugin ui (#6308)

* fix: batch update drawer ui && custom plan logic

* fix: max upload file size

* chore: remove comment

* fix: plan-status (#6311)

* fix: price page (#6313)

* fix: plan ui

* fix: custom standard plan (#6317)

* fix: system tool route & batch update drawer ui (#6318)

* fix: system tool route

* chore: upgrade docs

* chore: batch update ui

* fix: marketplace tool detail readme height (#6324)

* fix: marketplace tool detail readme height

* chore: use useRequest2

* chore: adapt new plugin sdk (#6334)

* chore: adapt new plugin sdk

* chore: bump @fastgpt-sdk/plugin to 0.3.6; fix type error

---------

Co-authored-by: Finley Ge <finleyge@fastgpt.io>
Co-authored-by: Finley Ge <32237950+FinleyGe@users.noreply.github.com>

* fix: marketplace batch update drawer button background (#6340)

* chore: useRequest2 -> useRequest

* #6193 feat(SeekDB): 集成支持 SeekDB 向量数据库 (#6338)

* #6193 feat(SeekDB): 集成支持 SeekDB 向量数据库

- 添加 SEEKDB_ADDRESS 环境变量支持
- 在 vectorDB 控制器中优先返回 SeekVectorCtrl 实例
- 新增 SeekDB 向量库控制器,复用 OceanBase 控制器实现
- 更新部署文档,新增 SeekDB 相关描述和配置说明
- 新增 SeekDB 的 Docker Compose 配置,支持国内和全球镜像
- 在开发文档中添加 SeekDB 的环境要求及特性介绍
- 修改部署脚本支持 SeekDB 版本快速部署

* fix(vectorDB): add type annotation to getVectorObj to resolve TypeScript compilation error

- Add return type annotation (: VectorControllerType) to getVectorObj function
- Fixes Docker build failure: Property 'insertIds' does not exist on type 'unknown'
- The Vector object now has correct type inference for retryFn

Related: Docker build fails at TypeScript type checking stage

* #6193 refactor(vectorDB): 调整 SeekDB 控制器导入方式

- 将 ObClient 和 ObVectorCtrl 分开导入,提升代码清晰度
- 将导出语句拆分为两行,便于后续维护
- 保持 OceanBase 控制器复用逻辑不变
- 优化代码格式,增强可读性

* doc

---------

Co-authored-by: archer <545436317@qq.com>

* fix date time picker disabled status (#6352)

* fix date time picker disabled status

* fix build

* fix: copilot review

* perf: claude review

* fix: ts

* chore: docs, type (#6350)

* fix: mock (#6354)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: archer <545436317@qq.com>
Co-authored-by: heheer <heheer@sealos.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: roy <whoeverimf5@gmail.com>
Co-authored-by: flying~dragon <58673960+flying-dragon-ai@users.noreply.github.com>
2026-01-30 18:47:43 +08:00

145 lines
5.6 KiB
TypeScript

import type {
IAwsS3CompatibleStorageOptions,
ICosStorageOptions,
IOssStorageOptions,
IStorageOptions
} from '@fastgpt-sdk/storage';
export const Mimes = {
'.gif': 'image/gif',
'.png': 'image/png',
'.jpg': 'image/jpeg',
'.jpeg': 'image/jpeg',
'.webp': 'image/webp',
'.svg': 'image/svg+xml',
'.csv': 'text/csv',
'.txt': 'text/plain',
'.pdf': 'application/pdf',
'.zip': 'application/zip',
'.json': 'application/json',
'.doc': 'application/msword',
'.js': 'application/javascript',
'.xls': 'application/vnd.ms-excel',
'.ppt': 'application/vnd.ms-powerpoint',
'.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
} as const;
export const S3Buckets = {
public: process.env.STORAGE_PUBLIC_BUCKET || 'fastgpt-public',
private: process.env.STORAGE_PRIVATE_BUCKET || 'fastgpt-private'
} as const;
export const getSystemMaxFileSize = () => {
const config = global.feConfigs.uploadFileMaxSize || 1024; // MB, default 1024MB
return config; // bytes
};
export const S3_KEY_PATH_INVALID_CHARS = /[|\\/]/;
export function createDefaultStorageOptions() {
const vendor = (process.env.STORAGE_VENDOR || 'minio') as IStorageOptions['vendor'];
switch (vendor) {
case 'minio': {
return {
vendor: 'minio',
forcePathStyle: process.env.STORAGE_S3_FORCE_PATH_STYLE === 'true' ? true : false,
externalBaseUrl: process.env.STORAGE_EXTERNAL_ENDPOINT || undefined,
endpoint: process.env.STORAGE_S3_ENDPOINT || 'http://localhost:9000',
region: process.env.STORAGE_REGION || 'us-east-1',
publicBucket: process.env.STORAGE_PUBLIC_BUCKET || 'fastgpt-public',
privateBucket: process.env.STORAGE_PRIVATE_BUCKET || 'fastgpt-private',
credentials: {
accessKeyId: process.env.STORAGE_ACCESS_KEY_ID || 'minioadmin',
secretAccessKey: process.env.STORAGE_SECRET_ACCESS_KEY || 'minioadmin'
},
maxRetries: process.env.STORAGE_S3_MAX_RETRIES
? parseInt(process.env.STORAGE_S3_MAX_RETRIES)
: 3,
publicAccessExtraSubPath: process.env.STORAGE_PUBLIC_ACCESS_EXTRA_SUB_PATH || undefined
} satisfies Omit<IAwsS3CompatibleStorageOptions, 'bucket'> & {
publicBucket: string;
privateBucket: string;
externalBaseUrl?: string;
};
}
case 'aws-s3': {
return {
vendor: 'aws-s3',
forcePathStyle: process.env.STORAGE_S3_FORCE_PATH_STYLE === 'true' ? true : false,
externalBaseUrl: process.env.STORAGE_EXTERNAL_ENDPOINT || undefined,
endpoint: process.env.STORAGE_S3_ENDPOINT || '',
region: process.env.STORAGE_REGION || 'us-east-1',
publicBucket: process.env.STORAGE_PUBLIC_BUCKET || 'fastgpt-public',
privateBucket: process.env.STORAGE_PRIVATE_BUCKET || 'fastgpt-private',
credentials: {
accessKeyId: process.env.STORAGE_ACCESS_KEY_ID || '',
secretAccessKey: process.env.STORAGE_SECRET_ACCESS_KEY || ''
},
maxRetries: process.env.STORAGE_S3_MAX_RETRIES
? parseInt(process.env.STORAGE_S3_MAX_RETRIES)
: 3,
publicAccessExtraSubPath: process.env.STORAGE_PUBLIC_ACCESS_EXTRA_SUB_PATH || undefined
} satisfies Omit<IAwsS3CompatibleStorageOptions, 'bucket'> & {
publicBucket: string;
privateBucket: string;
externalBaseUrl?: string;
};
}
case 'cos': {
return {
vendor: 'cos',
externalBaseUrl: process.env.STORAGE_EXTERNAL_ENDPOINT || undefined,
region: process.env.STORAGE_REGION || 'ap-shanghai',
publicBucket: process.env.STORAGE_PUBLIC_BUCKET || 'fastgpt-public',
privateBucket: process.env.STORAGE_PRIVATE_BUCKET || 'fastgpt-private',
credentials: {
accessKeyId: process.env.STORAGE_ACCESS_KEY_ID || '',
secretAccessKey: process.env.STORAGE_SECRET_ACCESS_KEY || ''
},
protocol: (process.env.STORAGE_COS_PROTOCOL as 'https:' | 'http:' | undefined) || 'https:',
useAccelerate: process.env.STORAGE_COS_USE_ACCELERATE === 'true' ? true : false,
domain: process.env.STORAGE_COS_CNAME_DOMAIN || undefined,
proxy: process.env.STORAGE_COS_PROXY || undefined
} satisfies Omit<ICosStorageOptions, 'bucket'> & {
publicBucket: string;
privateBucket: string;
externalBaseUrl?: string;
};
}
case 'oss': {
return {
vendor: 'oss',
externalBaseUrl: process.env.STORAGE_EXTERNAL_ENDPOINT || undefined,
endpoint: process.env.STORAGE_OSS_ENDPOINT || '',
region: process.env.STORAGE_REGION || 'oss-cn-hangzhou',
publicBucket: process.env.STORAGE_PUBLIC_BUCKET || 'fastgpt-public',
privateBucket: process.env.STORAGE_PRIVATE_BUCKET || 'fastgpt-private',
credentials: {
accessKeyId: process.env.STORAGE_ACCESS_KEY_ID || '',
secretAccessKey: process.env.STORAGE_SECRET_ACCESS_KEY || ''
},
cname: process.env.STORAGE_OSS_CNAME === 'true' ? true : false,
internal: process.env.STORAGE_OSS_INTERNAL === 'true' ? true : false,
secure: process.env.STORAGE_OSS_SECURE === 'true' ? true : false,
enableProxy: process.env.STORAGE_OSS_ENABLE_PROXY === 'false' ? false : true
} satisfies Omit<IOssStorageOptions, 'bucket'> & {
publicBucket: string;
privateBucket: string;
externalBaseUrl?: string;
};
}
default: {
throw new Error(`Unsupported storage vendor: ${vendor}`);
}
}
}