Minio文件服务器(超详细!)

1.下载

MinIO | 高性能, Kubernetes 原生对象存储

小伙伴们进入官网选择对应的操作系统下载即可!

 2.准备工作

2.1 运行Minio

下载完成之后输入下面的命令即可运行:

C:\minio.exe server F:\Data --console-address ":9001"

启动完之后可以看到两个地址,api这个是java中用到的端口号9000,下面这个是后台访问用到的端口号,

 2.2 登录

根据网址(http://192.168.175.121:5050)进来之后 ,输入默认的账号密码即可登录进去,账号和密码在运行窗口会显示。

 2.3 创建桶

2.3.1   如果是第一次使用,上来就会让你创建一个桶。

 2.3.2  相对于阿里oss存储来说,Minio创建桶比较简单,只需输入名字就行

2.3.3  创建完之后我们可以看到桶的状态是私有的,点击private可以修改

 

 2.3.4  我们还需要设置桶的accesskey和secretkey(创建完之后务必保存好),到此为止我们的准备工作就做完了!

3.测试 

3.1 导入依赖

<dependency>
   <groupId>io.minio</groupId>
   <artifactId>minio</artifactId>
   <version>8.2.1</version>
</dependency>

3.2 配置文件

minio:
  endpoint: 127.0.0.1
  port: 9000
  accessKey: minioadmin
  secretKey: minioadmin
  secure: false
  bucketName: huike-crm
  configDir: /data/excel
@Data
@Component
@ConfigurationProperties(prefix = "minio")
public class MinioProperties {

    private final static String HTTP = "http://";

    //endPoint是一个URL,域名,IPv4或者IPv6地址
    private String endpoint;

    //TCP/IP端口号
    private int port;

    //accessKey类似于用户ID,用于唯一标识你的账户
    private String accessKey;

    //secretKey是你账户的密码
    private String secretKey;

    //如果是true,则用的是https而不是http,默认值是true
    private Boolean secure;

    //默认存储桶
    private String bucketName;
}

 

3.3 编写配置类

@Configuration
@EnableConfigurationProperties(MinioProperties.class)
public class MinioConfig {

    @Bean
    public MinioClient minioClient(MinioProperties minioProperties) {
        return MinioClient.builder()
                .endpoint(minioProperties.getEndpoint(),minioProperties.getPort(),minioProperties.getSecure())
                .credentials(minioProperties.getAccessKey(),minioProperties.getSecretKey())
                .build();
    }
}

3.4 编写文件上传的工具类(根据官方文档提供的参考代码按需修改即可)

@Component
public class MinioUtils {
    @Autowired
    private MinioProperties minioProperties;
    
    public String upload(MultipartFile file) throws Exception {
        MinioClient minioClient = MinioClient.builder().
                endpoint("http://" + minioProperties.getEndpoint() + ":" + minioProperties.getPort())
                .credentials(minioProperties.getAccessKey(), minioProperties.getSecretKey()).build();
        boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(minioProperties.getBucketName()).build());
        if (!found) {
            minioClient.makeBucket(MakeBucketArgs.builder().bucket(minioProperties.getBucketName()).build());

        }
        String originalFilename = file.getOriginalFilename();
        String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
        String objectName = UUID.randomUUID().toString() + substring;
        String folderName  = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/"));
        objectName = folderName + objectName;
        minioClient.putObject(PutObjectArgs.builder()
                .bucket(minioProperties.getBucketName())
                .object(objectName)
                .stream(file.getInputStream(), file.getSize(), -1)
                .contentType(file.getContentType())
                .build()
        );

        return "/" + minioProperties.getBucketName() + "/" + objectName;
    }
}

3.5 controller

/**
     * 通用上传请求
     * 提示:将文件上传到minio中,返回的访问路径不是保存到data中,应该调用put方法存储
     * @param file 文件名称
     */
    @ApiOperation("文件-上传")
    @PostMapping("/common/upload")
    public AjaxResult fileUpload(MultipartFile file, HttpServletRequest request) throws Exception {
        String upload = minioUtils.upload(file);
        AjaxResult ajax = AjaxResult.success();
        String url = "http://" + minioProperties.getEndpoint() + ":" + minioProperties.getPort() + upload;
        ajax.put("url", url);
        ajax.put("fileName", upload);
        return ajax;
    }

到此就完成了Minio存储文件,欢迎各位大佬留言!

MinIO文件服务器是一个轻量级的对象存储服务器,可以在本地计算机或云环境中运行。你可以使用MinIO来存储和访问大量的数据。根据不同的操作系统和环境,安装和配置MinIO有几种不同的方法。 对于Windows操作系统,你可以在Windows PowerShell中执行以下命令来安装和配置MinIO: setx MINIO_ROOT_USER admin Invoke-WebRequest -Uri "https://dl.min.io/server/minio/release/windows-amd64/minio.exe" -OutFile "C:\minio.exe" setx MINIO_ROOT_PASSWORD password C:\minio.exe server F:\Data --console-address ":9001" 对于Linux操作系统,你可以在命令行中执行以下命令来安装和配置MinIO: wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server ./minio --console-address ":9001" 对于MacOS操作系统,你可以在命令行中执行以下命令来安装和配置MinIO: wget https://dl.min.io/server/minio/release/darwin-amd64/minio chmod +x minio MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server F:\Data --console-address ":9001" 另一种推荐的方法是使用Docker来安装和配置MinIO。你可以使用以下命令来下载并启动MinIO容器: docker-compose up -d 这是一个示例的docker-compose.yml文件的内容: version: '3' services: minio: image: minio/minio hostname: "minio" ports: - "9000:9000" # api 端口 - "9001:9001" # 控制台端口 environment: MINIO_ACCESS_KEY: admin #管理后台用户名 MINIO_SECRET_KEY: password #管理后台密码,最小8个字符 volumes: - /home/deepsoft/minio/data:/data #映射当前目录下的data目录至容器内/data目录 - /home/deepsoft/minio/config:/root/.minio/ #映射配置目录 command: server --console-address ':9001' /data #指定容器中的目录 /data privileged: true restart: always logging: options: max-size: "50M" # 最大文件上传限制 max-file: "10" driver: json-file networks: - minio 这些是安装和配置MinIO文件服务器的不同方法和步骤,你可以根据你的操作系统和环境选择合适的方法来进行安装。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MinIO分布式文件服务器搭建与入门](https://blog.csdn.net/lemon_TT/article/details/124675675)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [第03讲:MinIO分布式文件服务器](https://blog.csdn.net/qzc70919700/article/details/129988299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值