box-mgnt-note.md 2.6 KB

dave note for any changes here

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

重置 mysql 数据库并添加测试数据x

pnpm run prisma:seed:mysql pnpm run prisma:migrate:mysql

perform MySql DB update migration


pnpm run prisma:generate:mysql
pnpm run prisma:migrate:mysql

generate secret

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"


git remote add origin git@47.238.201.61:fct/box-nestjs-monorepo.git

+-----------+-------------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+-----------+-------------------------------------------------------------------------------------------------------------------------------------+
| box*admin | CREATE DATABASE `box_admin` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4*0900_ai_ci*/ /_!80016 DEFAULT ENCRYPTION='N'_/ |
+-----------+-------------------------------------------------------------------------------------------------------------------------------------+
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}'
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);

}
return imgBytes;
}