# 70-AnneY
**Repository Path**: openeuler2020/team-1231586744
## Basic Information
- **Project Name**: 70-AnneY
- **Description**: TOPIC_ID:70, TEAM_ID:1231586744, TEAM_NAME:AnneY
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2020-12-28
- **Last Updated**: 2021-06-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 70-AnneY
#### 介绍
TOPIC_ID:70, TEAM_ID:1231586744, TEAM_NAME:AnneY
本项目实现了一个高可用的Maven仓库,实现服务和存储功能,支持授权上传软件包,支持私库的分享,并加速下载能力(结合CDN)等,便于在社区中推广使用。
项目运行Demo请访问:[https://mvn.sharpdawn.com]
测试用户 [demo@gmail.com](),密码123456。
#### 使用说明
高可用Maven仓库网站的项目背景、系统设计和使用说明请见《项目功能说明书.pdf》
#### 安装教程
本项目的各个微服务使用 Docker 容器管理,通过容器内网进行通信。建议使用项目内 docker-compose.yml 完成镜像构建、容器启动:
```bash
$ git clone https://gitee.com/openeuler2020/team-1231586744.git
$ cd team-1231586744
# Edit config file
$ cp config.example.env config.env
$ vim config.env
# Build images and start services
$ mvn package
$ docker-compose up --build -d
$ docker-compose ps
```
#### Maven配置
在开发中,通过本地Maven直接完成制品文件的拉取,需设置仓库凭证。
##### 步骤一:设置仓库凭证
请在`settings.xml`文件``中设置以下仓库的访问凭证,通常`settings.xml`在`$HOME/.m2/`文件目录下。
```
your-releases
************************
************
your-snapshots
************************
************
```
以上配置中的`username`和`password`为个人凭证,在相应页面上获取。
##### 步骤二:配置仓库和包信息
在你的`pom.xml`文件``节点中加入对应的仓库使用地址。
```
your-releases
https://service-85mfoy15-1255566273.bj.apigw.tencentcs.com/1379352418340442112/release/
true
false
your-snapshots
https://service-85mfoy15-1255566273.bj.apigw.tencentcs.com/1379352418340442112/snapshot/
false
true
```
在你的`pom.xml`文件``节点中加入你要引用的文件信息。
```
[GROUP_ID]
[ARTIFACT_ID]
[VERSION]
```
以上配置中的`username`和`password`为个人凭证,在相应页面上获取。
##### 步骤三:拉取
运行以下命令完成制品拉取。
```
mvn install
```
#### 软件架构
#### 软件架构
代码结构如下:
```
team-1231586744
├── frontend/ - 前端
├── openeuler_base/ - 后端微服务网关
├── openeuler_common/ - 后端公共模块
├── openeuler_eureka/ - 后端注册中心
├── openeuler_share/ - 后端分享微服务
├── openeuler_storage/ - 后端文件微服务
├── openeuler_user/ - 后端用户微服务
├── serverless/ - 鉴权云函数
```
项目总体结构如上图所示:
1. 数据库用于存放用户信息、分享信息和私有仓库的元数据等
2. 使用对象存储服务作为构建的存储仓库,用户上传时在服务器鉴权后,直接通过预签名URL上传至对象存储Bucket
3. 服务器Server负责鉴权和传递指令。由于不中转文件,服务器的压力大大减小,可以根据实际规模,按需增加服务器节点和负载均衡器等
4. CDN服务可加速下载能力