目录

一.介绍

1.1 云耀云服务器L介绍

 1.2Docker介绍

1.3Minio介绍 

 1.4Nginx介绍

二:准备云耀云服务器L

2.1首先登陆华为云官网(没有账号的可以注册)

2.2 点击购买 ​编辑

2.3选择对应服务器的配置

 2.4 确认订单

三:准备系统环境

3.1更新yum源

 3.2下载相关工具

3.3配置docker环境

3.3.1设置docker仓库源

3.3.2查看docker版本并下载

 3.3.3配置docker源

 3.4 下载nginx(可选)

3.5开放安全组

 3.6docker部署minio服务

3.6.1简单介绍docker compose

3.6.2使用docker compose部署minio

3.7nginx代理minio控制台(可选)

四:测试minio服务

4.1 创建对应的密钥/用户 ,以及桶

 4.2编写java测试


一.介绍

1.1 云耀云服务器L介绍

云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。云耀云服务器L实例提供丰富严选的应用镜像,实现应用一键部署,助力客户便捷高效的在云端构建电商网站、Web应用、小程序、学习环境、各类开发测试等。

 1.2Docker介绍

 Docker是一个开源的容器化平台,具有轻量、快速、便携和可扩展等特点。它使得开发人员可以轻松地将应用程序打包成容器,并在任何地方运行这些容器。Docker可以用于部署应用程序、测试环境的搭建、持续集成和持续部署等方面。

1.3Minio介绍 

Minio是GlusterFS创始人之一Anand Babu Periasamy发布新的开源项目。基于Apache License v2.0开源协议的对象存储项目,采用Golang实现,客户端支Java,Python,Javacript, Golang语言。其设计的主要目标是作为私有云对象存储的标准方案。主要用于存储海量的图片,视频,文档等。非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

 1.4Nginx介绍

 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

二:准备云耀云服务器L


2.1首先登陆华为云官网(没有账号的可以注册)

选择华为云耀云服务器

2.2 点击购买
 

2.3选择对应服务器的配置

这里我选择的是centos7.9的系统镜像,大家可以根据自己对哪一个系统熟悉来选择

 2.4 确认订单

 完成订单之后返回控制台开始配置实例

三:准备系统环境

3.1更新yum源

yum -y update

 3.2下载相关工具

yum install -y yum-utils device-mapper-persistent-data lvm2

3.3配置docker环境

3.3.1设置docker仓库源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3.3.2查看docker版本并下载

查看版本

yum list docker-ce --showduplicates | sort -r

 下载对应版本(默认最新)

sudo yum install -y docker-ce 

 启动docker服务

docker enable docker --now

 查看状态

docker status  docker

 3.3.3配置docker源

这里以华为云镜像为例

 获取镜像加速地址

 编写配置文件

vim /etc/docker/daemon.json
>>
{
    "registry-mirrors": [ "你自己的镜像加速地址" ]
}
<<

 重启docker服务

systemctl  restart  docker

 3.4 下载nginx(可选)

下载nginx 

yum -y install nginx

 启动nginx并查看状态

systemctl enable nginx --now
systemctl status nginx

 

 此时可以通过浏览器查看

此时需要设置安全组

3.5开放安全组

到控制台找到对应的服务器

开放80 ,9000,9001端口

 3.6docker部署minio服务

3.6.1简单介绍docker compose

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。

3.6.2使用docker compose部署minio

vim docker-compose.yml
>>
version: "3"
services:
  minio:
    image: minio/minio
    ports:
      - "9000:9000"
      - "9001:9001"
    volumes:
      - minio_data:/data
    environment:
      MINIO_ROOT_USER: 用户名
      MINIO_ROOT_PASSWORD: 密码!一定要复杂
    restart: always
    command: server --address :9000 --console-address :9001 --compat /data
volumes:
  minio_data: {}
<<

 

运行docker-compose

docker compose up -d

 浏览器输入ip:9001

 输入密码后即可查看控制台

 至此minio初步搭建完成

3.7nginx代理minio控制台(可选)

vim /etc/nginx/nginx.conf
>>
  location ~ /{
            proxy_pass http://localhost:9001;
        }
<<

#检查nginx配置
nginx -t
#重启nginx
nginx -s reload

 这时就可以不加端口访问minio控制台了

四:测试minio服务

4.1 创建对应的密钥/用户 ,以及桶

创建密钥

 创建桶

 添加只读属性

 4.2编写java测试

pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.zly</groupId>
    <artifactId>minIO</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.5.4</version>
        </dependency>
    </dependencies>

</project>
public class Main {
    public static void main(String[] args) {
        MinioClient minioClient = null;
        try {

            // 构建一个Minio客户端
            minioClient = MinioClient.builder()
                    //创建容器时指定的账号
                    .credentials("key", "value")
                    //上传地址
                    .endpoint("http://【ip】:9000").build();

            File file = new File("D:\\6073c458af3ea.jpg");

            PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                    .object("图片.jpg")    //文件名
                    .contentType("image/jpeg")    //文件类型
                    .bucket("test")  //存储目录名
                    .stream(new FileInputStream(file), file.length(), -1).build(); //文件流,以及大小,-1代表不分片

            //执行上传
            ObjectWriteResponse objectWriteResponse = minioClient.putObject(putObjectArgs);
            System.out.println("上传结果 " + objectWriteResponse);

        } catch (MinioException | InvalidKeyException | IOException | NoSuchAlgorithmException e) {
            System.out.println("Error occurred: " + e);
        } finally {
        }
    }
}

 运行结果

 浏览器查看

 测试成功 完成个人OSS搭建!!!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐