4.7 minio下载文件代码优化

本文介绍了一个基于Node.js的MinIO文件下载系统配置及其实现细节。系统通过特定的配置参数,如文件名截取规则、文件类型筛选等,实现从MinIO存储桶中按需下载文件的功能。

1、config.js

module.exports = {
    //这里不能带http或者https
    endPoint: 'minio-spider-images.lan',
    port: 9000,
    useSSL: false, //不需要https
    accessKey: 'G2ga7dnJxg7M24C8',
    secretKey: 'ch7by1y17ytbXZOowW9PMz2lF69mzElX'
}
/**
 * @description split_range:截取源文件的名称,作为下载后的文件名称,可以为空或者两个数字,两个数字的长度不能超过源文件的名称的长度
 * @description download_ext:需要下载的文件后缀
 * @description file_path:下载后的文件存储的目录
 * @description exclude_ext:需要排除下载的文件格式,与download_ext冲突,两者只能存在一个有值
 * @description bucket:mio中需要下载的bucketname,不能为空
 * @description prefix:mio中bucketname下一级目录,为空则表示所有
 * example:
 * split_range:[1,10] 表示从前截取1位,从后截取10位,拼接成下载后文件的名称
 * download_ext:['.json','.docx'] 表示需要下载json格式和docx格式的文件,与exclude_ext冲突,仅可有一个字段有值,或者都为空,为空则下载所有
 * file_path:'/temp/download' 表示下载后的文件存储的在/temp/download位置,如果没有该目录,则会新建
 * exclude_ext:['.docx'] 表示下载非docx格式的文件,与download_ext冲突,仅可有一个字段有值,或者都为空,为空则下载所有
 * bucket:'fileinspection' 表示从mio的名称为fileinspection的buckets中下载文件
 * @type {
  
  {
在Spring Boot应用中实现从MinIO下载文件的功能,可以通过MinIO提供的Java客户端API完成。以下是一个示例代码,展示了如何从MinIO存储桶中下载单个文件: ```java import io.minio.MinioClient; import io.minio.errors.MinioException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.File; @Service public class MinioDownloadService { @Autowired private MinioClient minioClient; public void downloadFile(String bucketName, String objectName, String filePath) { try { // 下载文件到本地 minioClient.downloadObject( io.minio.DownloadObjectArgs.builder() .bucket(bucketName) .object(objectName) .filename(filePath) .build() ); System.out.println("文件下载成功: " + filePath); } catch (MinioException | InterruptedException e) { System.err.println("文件下载失败: " + e.getMessage()); Thread.currentThread().interrupt(); } } } ``` 在上述代码中,`downloadFile`方法接受三个参数:`bucketName`(存储桶名称)、`objectName`(MinIO中存储的文件名称)和`filePath`(本地保存文件的路径)。通过`MinioClient`的`downloadObject`方法,可以将指定的文件下载到本地文件系统中[^2]。 为了实现多文件下载或批量下载功能,可以扩展此方法,例如通过循环调用`downloadFile`方法来下载多个文件: ```java import java.util.List; public void downloadFiles(String bucketName, List<String> objectNames, String downloadDir) { for (String objectName : objectNames) { String filePath = downloadDir + File.separator + objectName; downloadFile(bucketName, objectName, filePath); } } ``` 在`downloadFiles`方法中,`objectNames`是一个包含多个文件名称的列表,`downloadDir`是本地存储文件的目录。通过遍历`objectNames`列表并调用`downloadFile`方法,可以实现批量下载文件的功能。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值