diff --git a/server/services/core/chat/message.service.ts b/server/services/core/chat/message.service.ts index 66120bd3..f86c94ca 100644 --- a/server/services/core/chat/message.service.ts +++ b/server/services/core/chat/message.service.ts @@ -508,7 +508,6 @@ class MessageService extends TcService { if (groupId) { // 是群组 const group = await call(ctx).getGroupInfo(groupId); - console.log('group.members', group.members, group); if (group.members.findIndex((m) => String(m.userId) === userId) === -1) { // 不存在该用户 throw new NoPermissionError(t('没有当前会话权限')); diff --git a/server/services/core/file.service.ts b/server/services/core/file.service.ts index 1d35aaea..ce637c0e 100644 --- a/server/services/core/file.service.ts +++ b/server/services/core/file.service.ts @@ -10,7 +10,7 @@ import { } from 'tailchat-server-sdk'; import _ from 'lodash'; import mime from 'mime'; -import type { Client as MinioClient } from 'minio'; +import type { BucketItemStat, Client as MinioClient } from 'minio'; import { isValidStaticAssetsUrl, isValidStr } from '../../lib/utils'; import path from 'node:path'; import type { FileDocument, FileModel } from '../../models/file'; @@ -59,6 +59,12 @@ class FileService extends TcService { }, disableSocket: true, }); + this.registerAction('stat', this.stat, { + params: { + objectName: 'string', + }, + disableSocket: true, + }); this.registerAction('delete', this.delete, { params: { objectName: 'string', @@ -322,6 +328,21 @@ class FileService extends TcService { return stream; } + /** + * 获取客户端的信息 + */ + async stat( + ctx: PureContext<{ + objectName: string; + }> + ): Promise { + const objectName = ctx.params.objectName; + + const stat = await this.minioClient.statObject(this.bucketName, objectName); + + return stat; + } + /** * 删除文件 */ diff --git a/server/services/core/gateway.service.ts b/server/services/core/gateway.service.ts index de300d16..dd2ca0b9 100644 --- a/server/services/core/gateway.service.ts +++ b/server/services/core/gateway.service.ts @@ -18,6 +18,8 @@ import { checkPathMatch } from '../../lib/utils'; import serve from 'serve-static'; import accepts from 'accepts'; import send from 'send'; +import path from 'path'; +import mime from 'mime'; export default class ApiService extends TcService { authWhitelist = []; @@ -289,6 +291,12 @@ export default class ApiService extends TcService { parentCtx: _.get(req, '$ctx'), } ); + + const ext = path.extname(objectName); + if (ext) { + res.setHeader('Content-Type', mime.getType(ext)); + } + result.pipe(res); } catch (err) { this.logger.error(err);