PeachBlog

Peach

Peach

即使被迫带上荆棘之冠👑

Rowlet_826 peach826#26510 Sw-2892-8205-7702 peach@peach826.cn
在linux使用minio单机版做图床服务器 附javaSDK的简单使用    

因为购买的服务器水管太小,平时获取图片速度缓慢。所以使用家里的树莓派搭建一个图床服务器供云服务使用,以分担压力。



速度对比:


1.选择适合自己的miuioServer版本

minio官方下载地址




https://min.io/download#/linux

下载适合自己得minio服务器端后放到服务器。




2.运行miuio

①设置登录账号密码

在环境变量中添加




root# vim /etc/profile

 
export MINIO_ROOT_USER=minio-admin
export MINIO_ROOT_PASSWORD=minio-secret-key-CHANGE-ME
#export MINIO_SERVER_URL=https://minio.example.net

root# source /etc/profile


②运行minio服务端




	minio server /data --console-address ":9001"  #9001端口是服务端管理页面的默认端口号,api的默认端口号是9000,/data是文件存放位置




③配置https(mini默认使用http)

1>使用minio官方文档方法实现(未实验)

在  ${HOME}/.minio/certs 文件下放入crt的认证文件 包括 private.key和public.crt

2>使用nginx代理

在nginx配置文件中加入




server{
    listen       8999 ; #ssl监听端口
        #server_name  xxxx.cn;
		 ssl on;
  #下面是ssl证书的存放位置
          ssl_certificate      /xx/ssl/xx.cn.pem;
          ssl_certificate_key  /xx/xx/xx.cn.key;
          ssl_session_cache    shared:SSL:1m;
          ssl_session_timeout  5m;
          error_page   500 502 503 504  /50x.html;
          error_page   404  /404.html;
          error_page   403  /403.html;
          location = /50x.html {
              root   html;
          }
          location = /404.html {
              root   html;
          }
          location = /403.html {
              root   html;
          }
          
  		#将请求转发给http的minioAPI端口
  			location / {
  		 proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://localhost:9000/;
    
}
}

⑤登录管理页面




http://xxxxx:9002/
minio单机版文档地址:https://docs.min.io/minio/baremetal/installation/deploy-minio-standalone.html





3.JavaSDK的使用

maven包:




<!-- https://mvnrepository.com/artifact/io.minio/minio -->
<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.3.0</version>
</dependency>
<!-- 官方 miniodemo需要的依赖-->
<dependency>
    <groupId>me.tongfei</groupId>
    <artifactId>progressbar</artifactId>
    <version>0.7.4</version>
</dependency>


①创建服务器连接




minioClient = MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey)
        .build();
//endpoint是api端口地址 后面的是设置的账号密码


②按照存储桶名活得文件的列表




//bucket中是存储桶的名称;prefix是需要活得那个文件夹下的列表,recursive为是否递归文件夹里的文件
Iterable<Result<Item>> results = minioClient.listObjects(
    ListObjectsArgs.builder().bucket("my-bucketname").prefix("/").recursive(true).build());


③按照文件名获得外链地址





Map<String, String> reqParams = new HashMap<String, String>();
reqParams.put("response-content-type", "application/json");
minioClient.getPresignedObjectUrl(
        GetPresignedObjectUrlArgs.builder()
                .method(Method.GET)//请求方式
                .bucket("存储桶名称")
                .object("文件名")//文件名
                .expiry(2, TimeUnit.HOURS) //外链过期时间 最长时间为7天
                .extraQueryParams(reqParams)
                .build());


更多使用文档:




https://docs.min.io/minio/baremetal/sdk/java/minio-java.html?highlight=listobjects

Links: Rainy的小站🌸

节假日倒计时 sitemap

京ICP备19011103号-1       PowerBy:

Copyright © by Peach All Rights Reserved.

Blog公告
温馨提醒:当前为测试阶段

项目为测试阶段,bug提交

邮件:peach@peach826.cn