mirror of
https://github.com/labring/FastGPT.git
synced 2026-05-05 01:02:59 +08:00
V4.14.1 feature (#5880)
* feat: app split (#5858) * feat: app split script * fix: app split * chore: app split script try-catch * adjust dashborad page (#5872) * create page * create page * create button * router name * bot * template * create page * mobile * toolfolder * fix * fix * fix build * split tool select * img * doc * rename enum * fix page adjust (#5883) * fix page adjust * fix ad store * fix: initv4141 (#5886) * fix: create app * doc * hide api * doc * feat: payment pause interactive (#5892) * fix: copy clbs (#5889) * fix: copy clbs * fix: copy clbs * fix: http protocol handling in baseURL (#5890) * fix: http protocol handling in baseURL * ui fix * auto saved version * fix * auto save * fix: model permission modal (#5895) * folder * fix: del app * navbar * fix: plugin file selector (#5893) * fix: plugin file selector * fix: plugin file selector * workflow tool inputform * pick --------- Co-authored-by: archer <545436317@qq.com> * fix: workflow tool time * doc * fix workorder button (#5896) * add inform track (#5897) * remove invalid track * comment * feat: marketplace refresh api (#5884) * marketplace refresh * fix: helper bot menu button (#5898) --------- Co-authored-by: Finley Ge <32237950+FinleyGe@users.noreply.github.com> Co-authored-by: heheer <heheer@sealos.io> Co-authored-by: 伍闲犬 <whoeverimf5@gmail.com>
This commit is contained in:
@@ -79,7 +79,24 @@ export class S3BaseBucket {
|
||||
return this.delete(src);
|
||||
}
|
||||
|
||||
copy(src: string, dst: string, options?: CopyConditions): ReturnType<Client['copyObject']> {
|
||||
async copy({
|
||||
src,
|
||||
dst,
|
||||
ttl,
|
||||
options
|
||||
}: {
|
||||
src: string;
|
||||
dst: string;
|
||||
ttl: boolean;
|
||||
options?: CopyConditions;
|
||||
}): ReturnType<Client['copyObject']> {
|
||||
if (ttl) {
|
||||
await MongoS3TTL.create({
|
||||
minioKey: dst,
|
||||
bucketName: this.name,
|
||||
expiredTime: addHours(new Date(), 24)
|
||||
});
|
||||
}
|
||||
return this.client.copyObject(this.name, src, dst, options);
|
||||
}
|
||||
|
||||
|
||||
@@ -66,6 +66,23 @@ class S3AvatarSource {
|
||||
await this.deleteAvatar(oldAvatar, session);
|
||||
}
|
||||
}
|
||||
|
||||
async copyAvatar({
|
||||
sourceKey,
|
||||
targetKey,
|
||||
ttl
|
||||
}: {
|
||||
sourceKey: string;
|
||||
targetKey: string;
|
||||
ttl: boolean;
|
||||
}) {
|
||||
await this.bucket.copy({
|
||||
src: sourceKey,
|
||||
dst: targetKey,
|
||||
ttl
|
||||
});
|
||||
return targetKey;
|
||||
}
|
||||
}
|
||||
|
||||
export function getS3AvatarSource() {
|
||||
|
||||
@@ -22,6 +22,10 @@ class S3ChatSource {
|
||||
return (this.instance ??= new S3ChatSource());
|
||||
}
|
||||
|
||||
static isChatFileKey(key?: string): key is `${typeof S3Sources.chat}/${string}` {
|
||||
return key?.startsWith(`${S3Sources.chat}/`) ?? false;
|
||||
}
|
||||
|
||||
async createGetChatFileURL(params: { key: string; expiredHours?: number; external: boolean }) {
|
||||
const { key, expiredHours = 1, external = false } = params; // 默认一个小时
|
||||
|
||||
|
||||
Reference in New Issue
Block a user