美文网首页
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