何必花钱买云存储服务,NAS自建兼容S3的免费对象存储服务

何必花钱买云存储服务,NAS自建兼容S3的免费对象存储服务

前言

自从买了NAS以后,云盘是再也没花过一分钱了,将NAS存储服务通过webdav进行共享后,更是探索出了一条对象存储的路,让小团队的文件也能存放在NAS里,这就是——Minio。

说到对象存储,可能大家都会想到阿里OSS、华为OBS、腾讯COS等等云服务端的S3存储服务。但是在我们的NAS端,我们也可以通过部署Minio服务来实现本地S3存储服务。这样就可以让所有的第三方服务将文件、文档全部存到NAS里来,即实现了文件集中,又节约了存储成本。

Minio是一种开源的对象存储系统,提供了简单易用的存储解决方案。Minio服务具有优秀的可靠性、安全性和扩展性,在云计算、备份恢复、媒体处理等领域得到广泛应用。

项目地址:https://github.com/minio/minio

系统部署

docker-compose.yml代码

🔻任意位置新建一个文件夹minio备用,下面代码备用

version: '3.7'

services:

  minio:

    image: minio/minio:latest

    command: server /data --console-address=":9001"

    ports:

      - "9000:9000"

      - "9001:9001"

    volumes:

      - minio:/data

    environment:

      - MINIO_ROOT_USER=minio

      - MINIO_ROOT_PASSWORD=minio

      # 如果使用二级桶域名的,则需要以下环境变量

      - MINIO_DOMAIN=cgakki.top

volumes:

  minio:

群晖部署

打开container manager,选择【项目】,点击【新建】,选择minio文件夹,将代码复制进去,点击下一步即可

威联通部署

打开container station,选择【应用程序】,点击【创建】,将代码复制进去,点击验证后部署即可

系统使用

在第三方使用Minio的时候,一般都需要获取两个信息,一个是key,另外一个是桶的名字,然后便可使用相关的参数配置了。下面简单介绍如何获取两个东西。

一、Minio获取key

🔻根据compose文件中你设置的MinIO端口,打开网站,我们先获取minio的AccessKey和SecretKey

🔻选择随机生成的两个key,注意本页面只会展示一次,一定要保存好。

二、MinIO创建存储桶

🔻选择buckets,新建一个桶

🔻取个名字,然后下一步即可

docker直接用SSH安装

1.查询minio服务版本

docker search minio

2.拉取minio

执行命令 docker pull minio/minio 下载稳定版本镜像,使用命令 docker images 查看下载的镜像。

docker pull minio/minio

3.启动

如果是docker安装的,启动命令如下:

docker run  -p 9000:9000 --name minio \
 -d --restart=always \
 -e MINIO_ACCESS_KEY=minio \
 -e MINIO_SECRET_KEY=minio@123 \
 -v /usr/local/minio/data:/data \
 -v /usr/local/minio/config:/root/.minio \
  minio/minio server /data  --console-address ":9000" --address ":9090"

如果是linux版安装的,启动命令如下:

./minio server /usr/local/minio/data --console-address ":9090"

启动成功,IP+9000访问,我顿时傻逼了????

最新版长成这样了???心里奔溃啊,那个简洁的界面没了,我们需要安装以前的版本,所以您是在我写这篇文章之后才安装的minio,千万别装最新版的了,别用这个命令了:

docker pull minio/minio

4.docker hub下载其他版本

https://hub.docker.com/r/minio/minio/tags?page=1&ordering=last_updated

安装今年七月份以前的稳定版本。

docker pull minio/minio:RELEASE.2021-06-17T00-10-46Z-28-gac7697426

1、启动测试

docker run -p 9000:9000 minio/minio:RELEASE.2021-06-17T00-10-46Z-28-gac7697426 server /data

心态爆炸啊,这个版本也不行,我们继续找下一个版本。

三、下载安装旧版本

通过以上的坑,我们发现minio的版本更新迭代特别快,最新版本的已经变得面目全非,不认识了。我查阅了最新官网发布版本。

大大小小已经发布了200多个版本了,我们继续找下一个版本,2021年6月17号的

docker pull minio/minio:RELEASE.2021-06-17T00-10-46Z

2、启动

docker run -p 9000:9000 minio/minio:RELEASE.2021-06-17T00-10-46Z server /data

看到这里我暗自大喜,终于填满了这个坑。

3、访问测试

输入IP+9000访问web页面:

还是熟悉的味道啊,真香!

3、MinIO自定义Access和Secret密钥

docker run -p 9000:9000 minio/minio server /data

MinIO 需要一个持久卷来存储配置和应用数据。不过, 如果只是为了测试一下, 您可以通过简单地传递一个目录(在下面的示例中为/ data)启动MinIO。这个目录会在容器启动时在容器的文件系统中创建,不过所有的数据都会在容器退出时丢失。

所以我们在工作中,真正的开发中,不能这么干,以上命令仅供测试使用,那么在工作当中应该注意什么呢?首先你的key 和 secret是哼重要的,就相当于你的账号密码,不要设置的那么简单,还有就是你的文件存放,假设服务宕机了,文件也不丢失,服务迁移了,文件也能跟着迁移,这才是工作中应当注意的地方。

要覆盖MinIO的自动生成的密钥,您可以将Access和Secret密钥设为环境变量。 MinIO允许常规字符串作为Access和Secret密钥。

docker run -p 9000:9000 --name minio\
  -e "MINIO_ACCESS_KEY=admin" \
  -e "[email protected]" \
  -v /usr/local/minio/data:/data \
  -v /usr/local/minio/config:/root/.minio \
  minio/minio:RELEASE.2021-06-17T00-10-46Z server /data
/usr/local/minio/data // 数据卷存放路径(自行添加)
/usr/local/minio/config //服务配置文件(自行添加)

再次启动之后,我们就可以发现重新登录,就可以使用我们自己的Access和Secret密钥了。

新建一个存储桶,往里面添加一个文件:

上传成功之后,我们去到我们的服务data数据卷存储位置,查看文件是否存在。

4、MinIO后台的方式启动

如果要后台运行 加入 -d 参数

docker run -d -p 9000:9000 --name minio\
  -e "MINIO_ACCESS_KEY=admin" \
  -e "[email protected]" \
  -v /usr/local/minio/data:/data \
  -v /usr/local/minio/config:/root/.minio \
  minio/minio:RELEASE.2021-06-17T00-10-46Z server /data

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注