对象存储minio的安装和使用

minio介绍

minio官方介绍:mino是高性能,对Kubernetes友好的对象存储。MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。同时,它在机器学习、大数据、私有云、混合云等方面的存储技术上也独树一帜。

个人感觉mino用起来简单方便,只需要下载一个minio的可执行文件,配置后可以单机运行,同时也可以配置实现对分布式对象存储系统。

1. minio下载及安装

linux系统版本下载

CPU架构 下载地址
64-bit Intel/AMD https://dl.min.io/server/minio/release/linux-amd64/minio
64-bit ARM https://dl.min.io/server/minio/release/linux-arm64/minio
64-bit PowerPC LE https://dl.min.io/server/minio/release/linux-ppc64le/minio
IBM Z-Series https://dl.min.io/server/minio/release/linux-s390x/minio
  • 下载minio可执行文件
> wget https://dl.min.io/server/minio/release/linux-amd64/minio
  • 我们们创建minio目录为/var/www/minio,将下载的minio文件拷贝到该目录,并授权。
> sudo cp minio /var/www/minio/minio
> sudo chmod +x minio
  • 编写minio启动脚本(这里我们配置的是单机版,分布式的可以参考官方文档)
# startup.sh

export MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=minio0227

nohup /var/www/minio/minio server --address=0.0.0.0:9000 --console-address=0.0.0.0:9001 --config-dir /var/www/minio/conf /var/www/minio/data > /var/www/minio/minio.log 2>&1&

// 配置数据访问地址端口为9000
// 配置后台访问地址端口为9001

注:minio启动参数配置详情可参考以下链接:http://docs.minio.org.cn/minio/baremetal/reference/minio-server/minio-server.html

  • 运行脚本,启动minio:

sudo ./startup.sh

  • 登录minio后台

http://xxx.xxx.xxx.xxx:9000

2. 通过管理后台对minio进行管理

  • 登录管理后台
    使用刚才启动配置的账号和密码登录,可以进入到后台
    对象存储minio的安装和使用_第1张图片
  • 创建桶
    进入后点击右上角Create Bucket,创建一个桶(bucket),我这里创建了一个jt905的桶
  • 配置桶的Access Rules
    桶创建好后,点击右上角的Manage按钮,进入到桶的配置界面
    对象存储minio的安装和使用_第2张图片
    选择Access Rules的tab页,右边有个添加Add Access Rules按钮,点击添加一下访问规则
Prefix: *.*
Access: readonly

3. 上传图片并访问

  • 点击桶界面的Browse按钮进入到对象管理界面:
    对象存储minio的安装和使用_第3张图片
    这里可以管理桶里面的对象
  • 上传对象
    点击右上角的Upload按钮,这里我们上传“3.png”的到图片到bucket为jt905的桶
  • 访问图片

http://xxx.xxx.xxx.xxx:9000/jt905/3.png

4. java sdk集成,上传对象


1.maven引入sdk包

    io.minio
    minio
    8.3.6


2. 代码实现上传
/**
 * @description:minio文件上传
 * @author: CKeen
 * @date: 2022/2/27 7:39 上午
 */
public class FileUploader {

    public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeyException, IOException {
        try {
            // Create a minioClient with the MinIO server playground, its access key and secret key.
            MinioClient minioClient =
                    MinioClient.builder()
                            .endpoint("http://xxx.xxx.xxx.xxx:9000")
                            .credentials("minio", "minio0227")
                            .build();

            boolean found =
                    minioClient.bucketExists(BucketExistsArgs.builder().bucket("jt905").build());
            if (!found) {
                minioClient.makeBucket(MakeBucketArgs.builder().bucket("jt905").build());
            } else {
                System.out.println("Bucket 'jt905' already exists.");
            }

            minioClient.uploadObject(
                    UploadObjectArgs.builder()
                            .bucket("jt905")
                            .object("123456789.pdf")        // minio存储文件
                            .filename("/Users/ckeen/Downloads/11440306007542662H4440502002001.pdf") // 本地文件路径
                            .build());
            System.out.println(
                    "'/Users/ckeen/Downloads/11440306007542662H4440502002001.pdf' is successfully uploaded as "
                            + "object '123456789.pdf' to bucket 'jt905'.");
        } catch (MinioException e) {
            System.out.println("Error occurred: " + e);
            System.out.println("HTTP trace: " + e.httpTrace());
        }
    }
}

注: 这里只是测试上传对象,其他的操作可以参考官方文档说明
还有多种语言提供的SDK

你可能感兴趣的:(linux,kubernetes,运维)