mirror of
https://github.com/labring/FastGPT.git
synced 2025-12-25 20:02:47 +00:00
Some checks failed
Build FastGPT images in Personal warehouse / get-vars (push) Waiting to run
Build FastGPT images in Personal warehouse / build-fastgpt-images (map[arch:amd64 runs-on:ubuntu-24.04]) (push) Blocked by required conditions
Build FastGPT images in Personal warehouse / build-fastgpt-images (map[arch:arm64 runs-on:ubuntu-24.04-arm]) (push) Blocked by required conditions
Build FastGPT images in Personal warehouse / release-fastgpt-images (push) Blocked by required conditions
Document deploy / sync-images (push) Has been cancelled
Document deploy / generate-timestamp (push) Has been cancelled
Document deploy / build-images (map[domain:https://fastgpt.cn suffix:cn]) (push) Has been cancelled
Document deploy / build-images (map[domain:https://fastgpt.io suffix:io]) (push) Has been cancelled
Document deploy / update-images (map[deployment:fastgpt-docs domain:https://fastgpt.cn kube_config:KUBE_CONFIG_CN suffix:cn]) (push) Has been cancelled
Document deploy / update-images (map[deployment:fastgpt-docs domain:https://fastgpt.io kube_config:KUBE_CONFIG_IO suffix:io]) (push) Has been cancelled
* perf: faq
* index
* delete dataset
* delete dataset
* perf: delete dataset
* init
* fix: faq
* refresh
* empty tip
* perf: delete type
* fix: some bugs (#6071)
* fix: publish channel doc link
* fix: checkbox disable hover style
* fix: huggingface.svg missing; update doc
* chore: update doc
* fix: typo
* fix: export log dateend;feat: file selector render (#6072)
* fix: export log dateend
* feat: file selector render
* perf: s3 controller
* team qpm limit & plan tracks (#6066)
* team qpm limit & plan tracks
* api entry qpm
* perf: computed days
* Revert "api entry qpm"
This reverts commit 1210c07217.
* perf: code
* system qpm limit
* system qpm limit
---------
Co-authored-by: archer <545436317@qq.com>
* perf: track
* remove export chat test
* doc
* feat: global agent (#6057)
* feat: global agent
* fix: agent
* fix: order display
* CHORE
* feat: error page log
* fix: var update
---------
Co-authored-by: Finley Ge <32237950+FinleyGe@users.noreply.github.com>
Co-authored-by: heheer <heheer@sealos.io>
Co-authored-by: Roy <whoeverimf5@gmail.com>
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
import { S3BaseBucket } from './base';
|
|
import { S3Buckets } from '../constants';
|
|
import { type S3OptionsType } from '../type';
|
|
|
|
export class S3PublicBucket extends S3BaseBucket {
|
|
constructor(options?: Partial<S3OptionsType>) {
|
|
super(S3Buckets.public, {
|
|
...options,
|
|
afterInit: async () => {
|
|
const bucket = this.bucketName;
|
|
const policy = JSON.stringify({
|
|
Version: '2012-10-17',
|
|
Statement: [
|
|
{
|
|
Effect: 'Allow',
|
|
Principal: '*',
|
|
Action: 's3:GetObject',
|
|
Resource: `arn:aws:s3:::${bucket}/*`
|
|
}
|
|
]
|
|
});
|
|
try {
|
|
await this.client.setBucketPolicy(bucket, policy);
|
|
} catch (error) {
|
|
// NOTE: maybe it was a cloud S3 that doesn't allow us to set the policy, so that cause the error,
|
|
// maybe we can ignore the error, or we have other plan to handle this.
|
|
console.error('Failed to set bucket policy:', error);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
createPublicUrl(objectKey: string): string {
|
|
const protocol = this.options.useSSL ? 'https' : 'http';
|
|
const hostname = this.options.endPoint;
|
|
const port = this.options.port;
|
|
const bucket = this.bucketName;
|
|
|
|
const url = new URL(`${protocol}://${hostname}:${port}/${bucket}/${objectKey}`);
|
|
|
|
if (this.options.externalBaseURL) {
|
|
const externalBaseURL = new URL(this.options.externalBaseURL);
|
|
|
|
url.port = externalBaseURL.port;
|
|
url.hostname = externalBaseURL.hostname;
|
|
url.protocol = externalBaseURL.protocol;
|
|
}
|
|
|
|
return url.toString();
|
|
}
|
|
}
|