基于树莓派搭建minio私有云存储(1)-单机应用
在2007年,GlusterFS演变为大型分布式存储方案后,任何配备合适硬件的公司,单位都可以利用个做分布式的流媒体,数据分析。在2011年,Red Hat收购了GlusterFS.
Minio是GlusterFS创始人之一Anand Babu Periasamy发布新的开源项目。Minio兼容Amason的S3分布式对象存储项目,采用Golang实现,客户端支持Java,Python,Javacript, Golang语言。
Minio可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。 开源中国
看起来不错,适用于大文件存储、支持S3接口、丰富的客户端组件。先上自己的树莓派测试下。
登录 minio官网下载最新版本服务端软件 “GUN/Linux A32”版本,下载后需要对其设置权限并运行服务。也可以直接在命令行进行如下操作:
$ wget https://dl.minio.io/server/minio/release/linux-arm/minio
$ chmod +x minio
$ ./minio server ~/Photos
由于我是将存储服务指向了群晖NAS,具体参考 "树莓派挂载群晖NFS分区" ,所以我的操作信息显示如下:
$ ./minio server /data/tmp #直接启动minio server端,存储指向/data/tmp
Created minio configuration file successfully at /home/sunsl/.minio
Endpoint: http://192.168.123.147:9000 http://172.17.0.1:9000 http://172.18.0.1:9000 http://127.0.0.1:9000
AccessKey: VKBYOIIZ46VPMRBKRBA4
SecretKey: JrNIcr1HOtVKRMzX2IEnTjyhaYGv4SWZ9Bnyc4Uo
Region: us-east-1 #不做配置就会直接显示us-east-1
SQS ARNs: <none>
Browser Access:
http://192.168.123.147:9000 http://172.17.0.1:9000 http://172.18.0.1:9000 http://127.0.0.1:9000
#这里的command-line就是minio的客户端 mc
Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
$ mc config host add myminio http://192.168.123.147:9000 VKBYOIIZ46VPMRBKRBA4 JrNIcr1HOtVKRMzX2IEnTjyhaYGv4SWZ9Bnyc4Uo
Object API (Amazon S3 compatible):
Go: https://docs.minio.io/docs/golang-client-quickstart-guide
Java: https://docs.minio.io/docs/java-client-quickstart-guide
Python: https://docs.minio.io/docs/python-client-quickstart-guide
JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
#磁盘容量信息
Drive Capacity: 1.9 TiB Free, 3.5 TiB Total
这时我们就可以直接访问Browser Access给出的地址了。界面如下:
首次登录会要求输入 AccessKey与 SecretKey登录后就可以直接管理文件夹及文件了。登录后界面:
在页面内包含了创建bucket,uploadfile等操作,非常方便。
登录服务器端查看文件存储形式与我们直接操作文件一样。不会像tusd等会改变文件上传后的名称、后缀等。为了测试我直接在页面中创建的bucket -hello文件夹复制一份为hello1,回到页面刷新后如上图所示。不存在学习难度:)
sunsl@pi3 in /data/tmp
$ tree
.
├── hello
│ └── Alan Walker-Faded.mp3
├── hello1
│ └── Alan Walker-Faded.mp3
├── music
└── video
默认情况下minio会在home目录下创建一个.minio的文件夹,在里面放置配置文件。
在配置文件config.json中除了配置region log外还可以配置 ‘notify 推送通知'功能,可以与
amqp、nats、elasticsearch、redis、postgresql、kafka、webhook、mysql进行集成完成文件变动记录。