|
@@ -1,110 +1,25 @@
|
|
|
# dave note for any changes here
|
|
# dave note for any changes here
|
|
|
|
|
|
|
|
```bash
|
|
```bash
|
|
|
-pnpm install
|
|
|
|
|
-
|
|
|
|
|
-tree -L 4 -I 'node_modules|.git'
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-echo "20" > .nvmrc
|
|
|
|
|
-nvm install
|
|
|
|
|
-nvm use
|
|
|
|
|
-rm -rf node_modules
|
|
|
|
|
-rm -rf dist
|
|
|
|
|
-rm -rf ~/.pnpm-store
|
|
|
|
|
-pnpm install
|
|
|
|
|
-npm rebuild bcrypt
|
|
|
|
|
-find node_modules -name bcrypt_lib.node
|
|
|
|
|
-
|
|
|
|
|
-pnpm run prisma:generate:mysql
|
|
|
|
|
-pnpm run prisma:generate:mongo
|
|
|
|
|
-pnpm run prisma:generate
|
|
|
|
|
-
|
|
|
|
|
-pnpm build:mgnt
|
|
|
|
|
-
|
|
|
|
|
-pnpm dev:mgnt
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-sudo systemctl start mysql
|
|
|
|
|
-sudo systemctl start mongod
|
|
|
|
|
-
|
|
|
|
|
|
|
+# Generate a new module
|
|
|
|
|
+nest g module mgnt-backend/feature/video-medias --project box-mgnt-api
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-## 重置 mysql 数据库并添加测试数据x
|
|
|
|
|
-
|
|
|
|
|
-pnpm run prisma:seed:mysql
|
|
|
|
|
-pnpm run prisma:migrate:mysql
|
|
|
|
|
-
|
|
|
|
|
-## perform MySql DB update migration
|
|
|
|
|
-
|
|
|
|
|
```bash
|
|
```bash
|
|
|
-
|
|
|
|
|
-pnpm run prisma:generate:mysql
|
|
|
|
|
-pnpm run prisma:migrate:mysql
|
|
|
|
|
|
|
+# Or generate a complete resource (module + controller + service + DTOs)
|
|
|
|
|
+nest g resource mgnt-backend/feature/video-medias --project box-mgnt-api
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-## generate secret
|
|
|
|
|
-
|
|
|
|
|
-```bash
|
|
|
|
|
-node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-git remote add origin git@47.238.201.61:fct/box-nestjs-monorepo.git
|
|
|
|
|
-
|
|
|
|
|
-```
|
|
|
|
|
-
|
|
|
|
|
-```code
|
|
|
|
|
-+-----------+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
-| Database | Create Database |
|
|
|
|
|
-+-----------+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
-| box*admin | CREATE DATABASE `box_admin` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4*0900_ai_ci*/ /_!80016 DEFAULT ENCRYPTION='N'_/ |
|
|
|
|
|
-+-----------+-------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
-```
|
|
|
|
|
-
|
|
|
|
|
```code
|
|
```code
|
|
|
-mongosh mongodb://admin:ZXcv%21%21996@localhost:27017/box?authSource=admin
|
|
|
|
|
-
|
|
|
|
|
-curl -X POST <http://47.76.151.238:3200/external-sync/fullsync/tea-copy> \
|
|
|
|
|
- -H "Content-Type: application/json" \
|
|
|
|
|
- -d '{"size": 20}'
|
|
|
|
|
-```
|
|
|
|
|
-
|
|
|
|
|
-```code
|
|
|
|
|
-Future<Uint8List> decryptImage(Map<String, dynamic> params) async {
|
|
|
|
|
-Uint8List imgBytes = params['imgBytes'];
|
|
|
|
|
-String path = params['path'];
|
|
|
|
|
-if (imgBytes.isEmpty) {
|
|
|
|
|
-return imgBytes;
|
|
|
|
|
-}
|
|
|
|
|
-var encryptedHead = Uint8List.fromList([0x88, 0xA8, 0x30, 0xCB, 0x10, 0x76]);
|
|
|
|
|
-var needEncrypt = false;
|
|
|
|
|
-if (imgBytes.length >= encryptedHead.length) {
|
|
|
|
|
-bool allMatch = true;
|
|
|
|
|
-for (int i = 0; i < encryptedHead.length; i++) {
|
|
|
|
|
-if (encryptedHead[i] != imgBytes[i]) {
|
|
|
|
|
-allMatch = false;
|
|
|
|
|
-break;
|
|
|
|
|
-}
|
|
|
|
|
-}
|
|
|
|
|
-if (allMatch) {
|
|
|
|
|
-needEncrypt = true;
|
|
|
|
|
-}
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-if (needEncrypt) {
|
|
|
|
|
-List<int> fileNameList = utf8.encode(path);
|
|
|
|
|
-
|
|
|
|
|
- /// 裁剪头部添加的字节数量
|
|
|
|
|
- for (var i = 0; i < encryptedHead.length; i++) {
|
|
|
|
|
- List<int> mutableList = imgBytes.toList();
|
|
|
|
|
- mutableList.remove(encryptedHead[i]);
|
|
|
|
|
- imgBytes = Uint8List.fromList(mutableList);
|
|
|
|
|
- }
|
|
|
|
|
- // 裁剪尾部添加的字节数量
|
|
|
|
|
- imgBytes.sublist(0, imgBytes.length - fileNameList.length);
|
|
|
|
|
|
|
+video-medias/
|
|
|
|
|
+├── dto/
|
|
|
|
|
+│ ├── create-video-media.dto.ts
|
|
|
|
|
+│ └── update-video-media.dto.ts
|
|
|
|
|
+├── entities/
|
|
|
|
|
+│ └── video-media.entity.ts
|
|
|
|
|
+├── video-medias.controller.ts
|
|
|
|
|
+├── video-medias.service.ts
|
|
|
|
|
+└── video-medias.module.ts
|
|
|
|
|
|
|
|
-}
|
|
|
|
|
-return imgBytes;
|
|
|
|
|
-}
|
|
|
|
|
```
|
|
```
|