类 MinioUtils
java.lang.Object
com.cdkjframework.minio.MinioUtils
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static boolean
composeFileFragment
(String bucketName, String targetName, Integer totalPieces, String md5) 合并分片文件,并放到指定目录 前提是之前已把所有分片上传完毕。io.minio.ObjectWriteResponse
拷贝文件static void
createBucket
(String bucketName) 如果一个桶不存在,则创建该桶io.minio.ObjectWriteResponse
createFolder
(String bucketName, String folderName) 创建目录List<io.minio.messages.Item>
getAllFilesByPrefix
(String bucketName, String prefix, boolean recursive) 根据文件前缀查询文件static Optional<io.minio.messages.Bucket>
getBucketInfo
(String bucketName) 获取 Bucket 的相关信息static Iterable<io.minio.Result<io.minio.messages.Item>>
getFilesByPrefix
(String bucketName, String prefix, boolean recursive) 获取路径下文件列表io.minio.StatObjectResponse
getFileStatusInfo
(String bucketName, String fileName) 获取文件信息, 如果抛出异常则说明文件不存在getFileStream
(String bucketName, String fileName) 获取文件的二进制流getFileStream
(String bucketName, String fileName, long offset, long length) 断点下载static String
getPresignedObjectUrl
(String bucketName, String fileName) 获得文件外链getPresignedObjectUrl
(String bucketName, String fileName, Integer expires) 获取文件外链static String
将URLDecoder编码转成UTF8static boolean
isFileExist
(String bucketName, String fileName) 判断文件是否存在boolean
isFolderExist
(String bucketName, String folderName) 判断文件夹是否存在void
removeFile
(String bucketName, String fileName) 删除文件static Iterable<io.minio.Result<io.minio.messages.DeleteError>>
removeFiles
(String bucketName, List<String> filePaths) 批量删除文件void
removeFolder
(String bucketName, String fileName) 已过时。io.minio.ObjectWriteResponse
uploadFile
(String bucketName, String fileName, String filePath) 上传本地文件static io.minio.ObjectWriteResponse
uploadFile
(String bucketName, org.springframework.web.multipart.MultipartFile file, String fileName, ContentTypeEnums contentType) 使用MultipartFile进行文件上传static ResponseBuilder
uploadFileFragment
(org.springframework.web.multipart.MultipartFile file, Integer currIndex, Integer totalPieces, String md5) 将文件进行分片上传static io.minio.ObjectWriteResponse
uploadFileStream
(String bucketName, String fileName, InputStream inputStream) 通过流上传文件
-
构造器详细资料
-
MinioUtils
public MinioUtils(io.minio.MinioClient client) 构造函数
-
-
方法详细资料
-
getUtf8ByURLDecoder
将URLDecoder编码转成UTF8- 参数:
str
- 待转码的字符串- 返回:
- 转码后的字符串
- 抛出:
UnsupportedEncodingException
-
createBucket
如果一个桶不存在,则创建该桶- 抛出:
Exception
-
getBucketInfo
获取 Bucket 的相关信息- 抛出:
Exception
-
uploadFile
public static io.minio.ObjectWriteResponse uploadFile(String bucketName, org.springframework.web.multipart.MultipartFile file, String fileName, ContentTypeEnums contentType) throws Exception 使用MultipartFile进行文件上传- 参数:
bucketName
- 存储桶file
- 文件fileName
- 对象名contentType
- 类型- 返回:
- 抛出:
Exception
-
uploadFileFragment
public static ResponseBuilder uploadFileFragment(org.springframework.web.multipart.MultipartFile file, Integer currIndex, Integer totalPieces, String md5) throws Exception 将文件进行分片上传有一个未处理的bug(虽然概率很低很低):
当两个线程同时上传md5相同的文件时,由于两者会定位到同一个桶的同一个临时目录,两个线程会相互产生影响!- 参数:
file
- 分片文件currIndex
- 当前文件的分片索引totalPieces
- 切片总数(对于同一个文件,请确保切片总数始终不变)md5
- 整体文件MD5- 返回:
- 剩余未上传的文件索引集合
- 抛出:
Exception
-
composeFileFragment
public static boolean composeFileFragment(String bucketName, String targetName, Integer totalPieces, String md5) throws Exception 合并分片文件,并放到指定目录 前提是之前已把所有分片上传完毕。- 参数:
bucketName
- 目标文件桶名targetName
- 目标文件名(含完整路径)totalPieces
- 切片总数(对于同一个文件,请确保切片总数始终不变)md5
- 文件md5- 返回:
- minio原生对象,记录了文件上传信息
- 抛出:
Exception
-
uploadFile
public io.minio.ObjectWriteResponse uploadFile(String bucketName, String fileName, String filePath) throws Exception 上传本地文件- 参数:
bucketName
- 存储桶fileName
- 文件名称filePath
- 本地文件路径- 抛出:
Exception
-
uploadFileStream
public static io.minio.ObjectWriteResponse uploadFileStream(String bucketName, String fileName, InputStream inputStream) throws Exception 通过流上传文件- 参数:
bucketName
- 存储桶fileName
- 文件名inputStream
- 文件流- 抛出:
Exception
-
isFileExist
判断文件是否存在- 参数:
bucketName
- 存储桶fileName
- 文件名- 返回:
- true: 存在
-
isFolderExist
判断文件夹是否存在- 参数:
bucketName
- 存储桶folderName
- 目录名称:本项目约定路径是以"/"开头,不以"/"结尾- 返回:
- true: 存在
-
getFilesByPrefix
public static Iterable<io.minio.Result<io.minio.messages.Item>> getFilesByPrefix(String bucketName, String prefix, boolean recursive) 获取路径下文件列表- 参数:
bucketName
- 存储桶prefix
- 文件名称recursive
- 是否递归查找,false:模拟文件夹结构查找- 返回:
- 二进制流
-
getFileStatusInfo
public io.minio.StatObjectResponse getFileStatusInfo(String bucketName, String fileName) throws Exception 获取文件信息, 如果抛出异常则说明文件不存在- 参数:
bucketName
- 存储桶fileName
- 文件名称- 抛出:
Exception
-
getAllFilesByPrefix
public List<io.minio.messages.Item> getAllFilesByPrefix(String bucketName, String prefix, boolean recursive) throws Exception 根据文件前缀查询文件- 参数:
bucketName
- 存储桶prefix
- 前缀recursive
- 是否使用递归查询- 返回:
- MinioItem 列表
- 抛出:
Exception
-
removeFiles
public static Iterable<io.minio.Result<io.minio.messages.DeleteError>> removeFiles(String bucketName, List<String> filePaths) 批量删除文件- 参数:
bucketName
- 存储桶filePaths
-需要删除的文件列表 - 返回:
- Result
-
getFileStream
获取文件的二进制流- 参数:
bucketName
- 存储桶fileName
- 文件名- 返回:
- 二进制流
- 抛出:
Exception
-
getFileStream
public InputStream getFileStream(String bucketName, String fileName, long offset, long length) throws Exception 断点下载- 参数:
bucketName
- 存储桶fileName
- 文件名称offset
- 起始字节的位置length
- 要读取的长度- 返回:
- 二进制流
- 抛出:
Exception
-
copyFile
public io.minio.ObjectWriteResponse copyFile(String bucketName, String fileName, String srcBucketName, String srcFileName) throws Exception 拷贝文件- 参数:
bucketName
- 存储桶fileName
- 文件名srcBucketName
- 目标存储桶srcFileName
- 目标文件名- 抛出:
Exception
-
removeFolder
已过时。删除文件夹(未完成)- 参数:
bucketName
- 存储桶fileName
- 路径- 抛出:
Exception
-
removeFile
删除文件- 参数:
bucketName
- 存储桶fileName
- 文件名称- 抛出:
Exception
-
getPresignedObjectUrl
获得文件外链- 参数:
bucketName
- 存储桶fileName
- 文件名- 返回:
- url 返回地址
- 抛出:
Exception
-
getPresignedObjectUrl
public String getPresignedObjectUrl(String bucketName, String fileName, Integer expires) throws Exception 获取文件外链- 参数:
bucketName
- 存储桶fileName
- 文件名expires
- 过期时间 <=7 秒 (外链有效时间(单位:秒))- 返回:
- url
- 抛出:
Exception
-
createFolder
public io.minio.ObjectWriteResponse createFolder(String bucketName, String folderName) throws Exception 创建目录- 参数:
bucketName
- 存储桶folderName
- 目录路径:本项目约定路径是以"/"开头,不以"/"结尾- 抛出:
Exception
-