{"id":24582553,"url":"https://github.com/linmoqc/memory-core","last_synced_at":"2025-04-24T04:50:17.983Z","repository":{"id":231762413,"uuid":"782282480","full_name":"LinMoQC/Memory-Core","owner":"LinMoQC","description":"这里是Memory Blog的后端仓库","archived":false,"fork":false,"pushed_at":"2024-05-06T04:57:53.000Z","size":203,"stargazers_count":41,"open_issues_count":2,"forks_count":12,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T07:05:22.628Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LinMoQC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-05T01:43:07.000Z","updated_at":"2025-03-21T10:05:43.000Z","dependencies_parsed_at":"2025-01-24T03:33:48.245Z","dependency_job_id":null,"html_url":"https://github.com/LinMoQC/Memory-Core","commit_stats":null,"previous_names":["linmoqc/memory-core"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinMoQC%2FMemory-Core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinMoQC%2FMemory-Core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinMoQC%2FMemory-Core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinMoQC%2FMemory-Core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LinMoQC","download_url":"https://codeload.github.com/LinMoQC/Memory-Core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250566445,"owners_count":21451230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-24T03:23:34.598Z","updated_at":"2025-04-24T04:50:17.936Z","avatar_url":"https://github.com/LinMoQC.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Memory-Core\n这里是Memory Blog的后端仓库\n## 项目结构\n```bash\nMemory-Core\n├── src\n│   ├── main\n│   │   ├── java\n│   │   │   └── com\n│   │   │       └── memory\n│   │   │           └── blog\n│   │   │               ├── aspect 切面\n│   │   │               ├── config 配置\n│   │   │               ├── controller 控制器 \n│   │   │               ├── dao 数据访问层 ，和 mapper 冲突\n│   │   │               ├── entity 实体类 \n│   │   │               ├── enums 枚举\n│   │   │               ├── exception 异常,TODO\n│   │   │               ├── interceptor 拦截器\n│   │   │               ├── mapper mapper接口\n│   │   │               ├── service \n│   │   │               ├── utils\n│   │   │               └── ServerApplication.java 启动类\n│   │   └── resources\n│   │       ├── com.linmoblog.server.mapper mapper文件\n│   │       ├── db-init 数据库初始化文件\n│   │       ├── MATE-INF \n│   │       ├── application.yml 通用配置\n│   │       ├── application-dev.yml 开发环境配置\n│   │       ├── application-prod.yml 生产环境配置\n│   │       └── logback-spring.xml\n\n```\n\n## 使用\n```bash\ncd \u0026\u0026 mkdir -p Memory/core \u0026\u0026 cd $_\nmkdir -p db_init\nwget -O db_init/init.sql https://cdn.jsdelivr.net/gh/LinMoQC/Memory-Core@master/db_init/init.sql\nwget https://cdn.jsdelivr.net/gh/LinMoQC/Memory-Core@master/docker-compose.yml\ndocker-compose up -d\n\n初始账号：\nadmin\n123456\n```\n## 增加 sys_config 表保存配置信息\n在 application.yml 中的配置可以写到 sys_config 表中（除了数据库配置，一般用于存储业务配置），这样可以在数据库或者后台管理界面修改项目配置（TODO）。\nconfig_key 对应配置的 key，config_value 对应配置的 value。\n## 文件存储\n文件存储目前继承了本地文件存储、阿里云 OSS 文件存储，后续会扩展更多的文件存储方式（Github、Gitee）\n同时只支持一种文件存储方式，如果配置了多种文件存储方式，则会有报错提示。\n\u003e 说人话就是 ali.enable 和 local.enable 只能有一个为 true。\n### 阿里云 OSS 文件存储\n在 application.yml 中修改配置\n```yml\nali:\n  enable: true # 是否启用阿里云 OSS 文件存储\n  endpoint: xxx # OSS endpoint \n  accessKeyId: xxx # OSS accessKeyId\n  accessKey: xxx # OSS accessKey\n  bucketName: xxx # OSS bucketName\n  uploadPath: xxx # OSS uploadPath\n```\n\n\n### 本地文件存储\n在 application.yml 中修改配置\n```yml\nlocal:\n  enable: true # 是否启用本地文件存储\n  uploadDir: xxx # 本地文件存储路径, 例如：/usr/local/upload 或 upload-dir 。\n```\n## 一些规范\n### 异常体系\n1. 在 Service 层不推荐使用直接返回 Result 对象的方法，最佳方式是抛出 CommonException 异常，GlobalExceptionHandler.java 中会统一拦截 CommonException 异常，并将其转换为包含错误信息的 Result 对象返回。\n2. 在 Controller 层使用 Result 对象直接返回。\n\u003e 具体示例参照 ImageController\n\n## 环境搭建\n### minio搭建\n推荐使用 `docker` 进行安装。\n命令如下：\n```shell\n# 创建文件夹\nmkdir /home/minio\ncd /home/minio\nmkdir data \nmkdir config\n\n# 运行容器\ndocker run --name minio \\\n-p 9000:9000 \\\n-p 9999:9999 \\\n-d --restart=always \\\n-e \"MINIO_ROOT_USER=memory\" \\\n-e \"MINIO_ROOT_PASSWORD=memory\" \\\n-v /home/minio/data:/data \\\n-v /home/minio/config:/root/.minio \\\nminio/minio server /data \\\n--console-address '0.0.0.0:9999'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinmoqc%2Fmemory-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinmoqc%2Fmemory-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinmoqc%2Fmemory-core/lists"}