From 6405d93ee32df974725d969cfefad61301aa1f46 Mon Sep 17 00:00:00 2001 From: xudaotutou <13435638964@163.com> Date: Fri, 1 Dec 2023 11:18:20 +0800 Subject: [PATCH] fix(object-storage): switch kc (#4355) --- .github/workflows/frontend.yml | 2 +- frontend/Dockerfile | 6 +- frontend/pnpm-lock.yaml | 5 +- .../providers/objectstorage/next.config.js | 29 +++++ frontend/providers/objectstorage/package.json | 1 + .../public/locales/en/common.json | 3 +- .../public/locales/zh/common.json | 1 + .../objectstorage/src/api/monitor.ts | 2 +- .../BucketContainer/BucketHeader.tsx | 7 +- .../BucketContainer/FileManager.tsx | 29 +++-- .../components/BucketContainer/Monitor.tsx | 45 ++++---- .../components/BucketContainer/lineChart.tsx | 1 + .../src/components/SideBar/index.tsx | 57 ++++++++-- .../common/modal/CreateFolderModal/index.tsx | 10 ++ .../common/modal/ParamterModal/index.tsx | 2 +- .../common/modal/UploadModal/index.tsx | 27 ++++- .../providers/objectstorage/src/consts.ts | 8 +- .../src/hooks/useBillingData.tsx | 29 +++++ .../objectstorage/src/pages/_app.tsx | 58 +++++----- .../objectstorage/src/pages/api/billing.ts | 106 ++++++++++++++++++ .../src/pages/api/bucket/create.ts | 35 +++++- .../src/pages/api/bucket/delete.ts | 4 +- .../src/pages/api/bucket/info.ts | 4 +- .../src/pages/api/bucket/list.ts | 4 +- .../objectstorage/src/pages/api/monitor.ts | 10 +- .../objectstorage/src/pages/api/quota.ts | 4 +- .../objectstorage/src/pages/api/user/init.ts | 8 +- .../objectstorage/src/services/request.ts | 4 +- .../objectstorage/src/store/ossStore.ts | 10 ++ .../objectstorage/src/types/billing.ts | 56 +++++++++ .../objectstorage/src/utils/json2Yaml.ts | 8 +- .../objectstorage/src/utils/tools.ts | 6 +- .../providers/objectstorage/src/utils/user.ts | 6 +- 33 files changed, 450 insertions(+), 137 deletions(-) create mode 100644 frontend/providers/objectstorage/src/hooks/useBillingData.tsx create mode 100644 frontend/providers/objectstorage/src/pages/api/billing.ts create mode 100644 frontend/providers/objectstorage/src/types/billing.ts diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index eb73c8e49cb..4ccd482e7ec 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -64,7 +64,7 @@ jobs: providers/terminal, providers/dbprovider, providers/costcenter, - # providers/objectstorage, + providers/objectstorage, desktop, ] steps: diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 4ecc443ef07..f1a118a0856 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -31,6 +31,7 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ COPY ./tsconfig.json ./tsconfig.json COPY ./tsconfig.deps.json ./tsconfig.deps.json COPY ./tsconfig.base.json ./tsconfig.base.json +COPY ./tsconfig.web.json ./tsconfig.web.json COPY ./packages ./packages RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ @@ -51,12 +52,11 @@ ENV NEXT_TELEMETRY_DISABLED 1 # COPY --from=deps /app/packages ./packages -COPY . . - - ARG name ARG path +COPY ${path} ${path} + RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm --offline --filter=$name install && pnpm --filter=$name run build # Production image, copy all the files and run next diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 1255bdd5e27..29fffb646b6 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -1245,6 +1245,9 @@ importers: i18next: specifier: ^22.5.1 version: 22.5.1 + immer: + specifier: ^10.0.3 + version: 10.0.3 js-yaml: specifier: ^4.1.0 version: 4.1.0 @@ -1286,7 +1289,7 @@ importers: version: 5.2.2 zustand: specifier: ^4.4.1 - version: 4.4.7(@types/react@18.2.37)(immer@9.0.21)(react@18.2.0) + version: 4.4.7(@types/react@18.2.37)(immer@10.0.3)(react@18.2.0) devDependencies: '@types/jest': specifier: ^29.5.5 diff --git a/frontend/providers/objectstorage/next.config.js b/frontend/providers/objectstorage/next.config.js index a90e8194fbc..754b666905f 100644 --- a/frontend/providers/objectstorage/next.config.js +++ b/frontend/providers/objectstorage/next.config.js @@ -16,6 +16,35 @@ module.exports = (phase, { defaultConfig }) => { experimental: { outputFileTracingRoot: path.join(__dirname, '../../') }, + webpack(config, { isServer }) { + if (!isServer) { + config.resolve = { + ...config.resolve, + fallback: { + ...config.resolve.fallback, + fs: false + } + }; + } + Object.assign(config.resolve.alias, { + 'utf-8-validate': false, + bufferutil: false + }); + config.module = { + ...config.module, + rules: config.module.rules.concat([ + { + test: /\.svg$/i, + issuer: /\.[jt]sx?$/, + use: ['@svgr/webpack'] + } + ]), + exprContextCritical: false, + unknownContextCritical: false + }; + + return config; + }, async headers() { return [ { diff --git a/frontend/providers/objectstorage/package.json b/frontend/providers/objectstorage/package.json index d84e7eb8172..919d0bc6db1 100644 --- a/frontend/providers/objectstorage/package.json +++ b/frontend/providers/objectstorage/package.json @@ -27,6 +27,7 @@ "framer-motion": "^10.16.4", "fuse.js": "^7.0.0", "i18next": "^22.5.1", + "immer": "^10.0.3", "js-yaml": "^4.1.0", "jszip": "^3.10.1", "lodash": "^4.17.21", diff --git a/frontend/providers/objectstorage/public/locales/en/common.json b/frontend/providers/objectstorage/public/locales/en/common.json index 05b651a53f1..550d2e04236 100644 --- a/frontend/providers/objectstorage/public/locales/en/common.json +++ b/frontend/providers/objectstorage/public/locales/en/common.json @@ -14,5 +14,6 @@ "totalSpace": "Total Space", "s3ServiceParams": "Access Key", "refresh": "Refresh", + "dailyEstimate": "Daily Estimate", "deleteWarning": "Delete Warning" -} \ No newline at end of file +} diff --git a/frontend/providers/objectstorage/public/locales/zh/common.json b/frontend/providers/objectstorage/public/locales/zh/common.json index 9b87b184746..4adf3f958b2 100644 --- a/frontend/providers/objectstorage/public/locales/zh/common.json +++ b/frontend/providers/objectstorage/public/locales/zh/common.json @@ -12,6 +12,7 @@ "totalSpace": "总空间用量", "s3ServiceParams": "访问密钥", "refresh": "刷新", + "dailyEstimate": "每日估价", "config": "基础配置", "deleteWarning": "删除警告" } \ No newline at end of file diff --git a/frontend/providers/objectstorage/src/api/monitor.ts b/frontend/providers/objectstorage/src/api/monitor.ts index 261502bf39d..3878f094401 100644 --- a/frontend/providers/objectstorage/src/api/monitor.ts +++ b/frontend/providers/objectstorage/src/api/monitor.ts @@ -6,5 +6,5 @@ import { AxiosInstance } from 'axios'; * @ bucket : bucketName(ns-bucketCRName) */ export const _monitor = (request: AxiosInstance) => (data: { bucket: string }) => - request.post('/api/monitor', data); + request.post('/api/monitor', data); export const monitor = _monitor(request); diff --git a/frontend/providers/objectstorage/src/components/BucketContainer/BucketHeader.tsx b/frontend/providers/objectstorage/src/components/BucketContainer/BucketHeader.tsx index f9fff3f8210..31004f9e906 100644 --- a/frontend/providers/objectstorage/src/components/BucketContainer/BucketHeader.tsx +++ b/frontend/providers/objectstorage/src/components/BucketContainer/BucketHeader.tsx @@ -1,10 +1,6 @@ -import { Authority, QueryKey, TBucket, bucketConfigQueryParam } from '@/consts'; +import { bucketConfigQueryParam } from '@/consts'; import { Text, HStack, StackProps, ButtonGroup, Button } from '@chakra-ui/react'; -import AuthorityTips from '@/components/common/AuthorityTip'; -import DeleteIcon from '@/components/Icons/DeleteIcon'; import { useOssStore } from '@/store/ossStore'; -import { useMutation, useQueryClient } from '@tanstack/react-query'; -import { deleteBucket } from '@/api/bucket'; import { useRouter } from 'next/router'; import { useTranslation } from 'next-i18next'; import EditIcon from '../Icons/EditIcon'; @@ -21,7 +17,6 @@ export default function BucketHeader({ ...styles }: StackProps) { {bucket.name} -