美文网首页
docker-compose 搭建文件存储服务minio

docker-compose 搭建文件存储服务minio

作者: 字字经心 | 来源:发表于2023-04-15 11:31 被阅读0次

    MinIo 是轻量的文件存储服务,兼容aws S3 服务接口。 就是可以使用亚马逊提供的存储接口来上传文件到minio。学校的一个项目要求连接局域网能正常使用,就考虑在本地搭建一个文件存储服务。

    docker-compse.yml

    version: '2.2'
    services:
      minio:
        image: "quay.io/minio/minio:RELEASE.2022-08-02T23-59-16Z"
        container_name: minio
        privileged: true
        restart: always
        ports:
          - "9006:9006"
          - "9007:9007"
        volumes:
          - ./aa/data/:/data/
        command: server --address ":9006" --console-address ":9007" /data
        environment:
          - MINIO_ROOT_USER=xx
          - MINIO_ROOT_PASSWORD=IjudisjIUJId498eNINxx
        network_mode: host
    

    9006 是文件存储服务port,9007是web 管理界面服务port。可以先在/aa/data/
    新建一个目录,即 bucket 的名字,如jxufe_minio,会被放到mimno 容器的/data/ 。访问http://127.0.0.1:9007 就可以进入存储服务的图形化界面,用户名和密码是 MINIO_ROOT_USER/MINIO_ROOT_PASSWORD 对应的值。

    nginx

    服务运行起来之后,可以验证一下。

    curl http://127.0.0.1:9006 
    

    接下来可以配置nginx ,需要注意的是文件的上传和下载请求都是由minio 服务来响应的,因为我是把项目的web 服务和minio 配置在一起,当时想着文件的访问就由项目自己来处理,但这样nginx 就不好配置了。

    location /jxufe_minio {
            proxy_pass http://127.0.0.1:9006; // 代表         http://127.0.0.1:9006/jxufe_minio/.... 来process.....
            proxy_redirect default;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
    }
    

    用接口上传文件

    直接用aws s3 提供的文件上传api,调用接时自己配的一些配置

    'OSS_SETTING' => [
            'type' => 'AWS_S3', //AWS_S3,还有其他oss
            'id' => 'xx', //access_key 即MINIO_ROOT_USER
            'key' => 'IjudisjIUJId498x', //secret_key 即MINIO_ROOT_PASSWORD
            'host' => 'https://xx.xx.xx', //endpoint
            'bucket' => 'jxufeminio', //bucket,为空放在根bucket下
            "dir" => '', //bucket下的目录,比如:test/
            'acl' => 'public-read', //上传后的权限控制
            'max_size' => 50 * 1024 * 1024, // 用户上传文件大小限制
            'callback_url' => '', // $callbackUrl    
    ],
    

    尝试分布式minio

    分布式minio

    其他问题

    1. bucket 不存在,/aa/data/ 新建一个目录,即 bucket 的名字,如jxufe_minio。也可以进入图形化界面新建
    2. 上传成功,但是无法访问。可能要进入9007 图形化界面,把该bucket 设置为public

    参考文章

    相关文章

      网友评论

          本文标题:docker-compose 搭建文件存储服务minio

          本文链接:https://www.haomeiwen.com/subject/ankxjdtx.html