MinIO是一种常见的对象存储的服务器,可以用来搭建网盘等服务。在本人配置MinIO环境时遇到过一些问题,在此处记录以下配置过程。
本次配置使用docker进行。
1.在电脑上安装和配置docker(我的服务器电脑是deepin系统,上面安装了宝塔面板)
具体安装步骤在网上搜索即可,deepin官方有个wiki,里边有安装docker的教程,可以参考配置。
2.执行以下命令
?
1 |
sudo docker run --name minio --restart=always <br>-p 9000:9000 -p 9090:9090 <br>-e "MINIO_ROOT_USER=minio" -e "MINIO_ROOT_PASSWORD=admin123456" <br>- v /data/minio/data : /data <br>- v /data/minio/conf : /root/ .minio -d minio /minio server /data --console-address ":9090" -address ":9000"
|
注意(1)环境变量部分,在其他比较老的教程当中可能不是这两个名字(旧的名字已经被弃用了),为了和minio官方示例保持一致,此处采用比较新的名字,这两个环境变量分别代表用户名和密码,下文要使用。(2)也可以将其改写为docker compose的yaml配置文件,均可,此处为方便使用docker cli直接创建
3.启动起来服务之后,看docker容器的日志:
圈出的部分就是webapi和浏览器界面的地址,之后所有的配置都要以此处为准
4.浏览器访问浏览器界面的地址,输入用户名和密码(在前面的docker命令行当中配置的),进入如下界面
(不要管已经有的buckets,这是我之前创建的,初次启动时此处应该没有)
5.进入AccessKey,生成access key和secret key,生成后一定要点击保存
注意此处生成的secret key要妥善保存,因为只会显示一次
6.创建.net项目进行测试
此处创建一个console app,注意要引用MinIO的nuget包
程序只作为测试目的,写的不好,请谅解。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
using Minio;
using Minio.DataModel.Args;
<br> // 上文当中创建的access key和scret key
var accessKey = "XZSwBUSkveQ30cgZtsRQ" ;
var secretKey = "NNMeE1SNdHkErLNLCrbKSuEx5qmWX9zlBafwP8qt" ;
var minioClient = new MinioClient()
.WithEndpoint( "10.4.108.114:9000" ) // 填webapi接口地址
.WithCredentials(accessKey, secretKey)
.WithSSL( false )
.Build();
// 创建桶
var makeArg = new MakeBucketArgs().WithBucket( "abc123" );
await minioClient.MakeBucketAsync(makeArg);<br> // 上传文件
PutObjectArgs putObjectArgs = new PutObjectArgs()
.WithBucket( "abc123" )
.WithObject( "test.pdf" )
.WithFileName( "D:\编译原理.pdf" );
await minioClient.PutObjectAsync(putObjectArgs);
|
7.执行完后,可以打开
会发现文件已经上传。
在本人第一次配置minio时,曾经遇到过.net一直出异常<Error xmlns=”…”>,这是因为在创建access key和secret key后没有点create(本人眼瞎)