From 4b91d890cfb1c2677945bb135a5e8192d6baaac6 Mon Sep 17 00:00:00 2001 From: Junyi Date: Fri, 14 Mar 2025 22:19:20 +0800 Subject: [PATCH] refactor(utils): move md5 to utils (#6468) * refactor(utils): move md5 to utils * fix(utils): fix export * fix(utils): add missed file --- packages/core/utils/src/crypto.ts | 14 ++++++++++++++ packages/core/utils/src/index.ts | 5 +++-- .../plugin-file-manager/src/server/storages/s3.ts | 9 ++------- 3 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 packages/core/utils/src/crypto.ts diff --git a/packages/core/utils/src/crypto.ts b/packages/core/utils/src/crypto.ts new file mode 100644 index 0000000000..513d405c0f --- /dev/null +++ b/packages/core/utils/src/crypto.ts @@ -0,0 +1,14 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +import { createHash } from 'crypto'; + +export function md5(input: string) { + return createHash('md5').update(input).digest('hex'); +} diff --git a/packages/core/utils/src/index.ts b/packages/core/utils/src/index.ts index df78d970ae..4b91d6e8f5 100644 --- a/packages/core/utils/src/index.ts +++ b/packages/core/utils/src/index.ts @@ -8,11 +8,13 @@ */ import lodash from 'lodash'; -import { dayjs } from './dayjs'; +export { lodash }; +export { dayjs } from './dayjs'; export * from './assign'; export * from './collections-graph'; export * from './common'; +export * from './crypto'; export * from './date'; export * from './dayjs'; export * from './forEach'; @@ -37,5 +39,4 @@ export * from './url'; export * from './i18n'; export * from './wrap-middleware'; export * from './object-to-cli-args'; -export { dayjs, lodash }; export { Schema } from '@formily/json-schema'; diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/s3.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/s3.ts index a8e6114d60..0c3c686050 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/s3.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/storages/s3.ts @@ -8,7 +8,7 @@ */ import { DeleteObjectsCommand } from '@aws-sdk/client-s3'; -import crypto from 'crypto'; +import { md5 } from '@nocobase/utils'; import { AttachmentModel, StorageType } from '.'; import { STORAGE_TYPE_S3 } from '../../constants'; import { cloudFilenameGetter, getFileKey } from '../utils'; @@ -64,17 +64,12 @@ export default class extends StorageType { }); } - calculateContentMD5(body) { - const hash = crypto.createHash('md5').update(body).digest('base64'); - return hash; - } - async deleteS3Objects(bucketName: string, objects: string[]) { const deleteBody = JSON.stringify({ Objects: objects.map((objectKey) => ({ Key: objectKey })), }); - const contentMD5 = this.calculateContentMD5(deleteBody); + const contentMD5 = md5(deleteBody); const deleteCommand = new DeleteObjectsCommand({ Bucket: bucketName,