| | |
| | | import com.gkhy.exam.common.config.MinioConfig; |
| | | import io.minio.*; |
| | | import io.minio.http.Method; |
| | | import io.minio.messages.DeleteError; |
| | | import io.minio.messages.DeleteObject; |
| | | import io.minio.messages.Item; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.InputStream; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Component |
| | | @Slf4j |
| | |
| | | * @param fileName 带后缀的文件名 检验日期yyyyMMdd加16位随机码 |
| | | * @param stream 文件流 要上传文件的流 |
| | | */ |
| | | public void fileUploader( String fileName, InputStream stream) throws Exception { |
| | | PutObjectArgs objectArgs = PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).stream(stream,-1,-1).contentType("application/octet-stream").build(); |
| | | // 使用putObject上传一个文件到文件分类 |
| | | minioClient.putObject(objectArgs); |
| | | public String fileUploader( String fileName, InputStream stream) { |
| | | try { |
| | | PutObjectArgs objectArgs = PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).stream(stream, stream.available(), -1).contentType("application/octet-stream").build(); |
| | | // 使用putObject上传一个文件到文件分类 |
| | | minioClient.putObject(objectArgs); |
| | | }catch (Exception e) { |
| | | log.error("minio上传文件失败:{}",e.getMessage()); |
| | | return null; |
| | | } |
| | | return fileName; |
| | | } |
| | | |
| | | |
| | |
| | | String url = minioClient.getPresignedObjectUrl(build); |
| | | return url; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("预览文件失败:{}",e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 删除文件夹 |
| | | * @param folderName |
| | | * @return |
| | | */ |
| | | public boolean removeFolder(String folderName){ |
| | | try { |
| | | if(!folderName.endsWith("/")){ |
| | | folderName=folderName+"/"; |
| | | } |
| | | ListObjectsArgs listObjectsArgs=ListObjectsArgs.builder().bucket(minioConfig.getBucketName()).prefix(folderName).build(); |
| | | |
| | | Iterable<Result<Item>> results = minioClient.listObjects(listObjectsArgs); |
| | | List<DeleteObject> objectNames=new ArrayList<>(); |
| | | for(Result<Item> result:results){ |
| | | objectNames.add(new DeleteObject(result.get().objectName())); |
| | | } |
| | | if(!objectNames.isEmpty()) { |
| | | RemoveObjectsArgs removeObjectsArgs = RemoveObjectsArgs.builder().bucket(minioConfig.getBucketName()) |
| | | .objects(objectNames).build(); |
| | | Iterable<Result<DeleteError>> results1 = minioClient.removeObjects(removeObjectsArgs); |
| | | for (Result<DeleteError> result : results1) { |
| | | DeleteError error = result.get(); |
| | | log.error("Error in deleting object {},{}", error.objectName(), error.message()); |
| | | } |
| | | } |
| | | RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder().bucket(minioConfig.getBucketName()) |
| | | .object(folderName).build(); |
| | | minioClient.removeObject(removeObjectArgs); |
| | | return true; |
| | | }catch (Exception e){ |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |