import io.minio.*;
import lombok.SneakyThrows;
import org.apache.http.client.utils.URIBuilder;
@Component
public class FileUploadUtils {
private final MinioClient minioClient;
@Value("${minio.bucket}")
private String bucket;
/**
* 获取minio永不失效的外链
* @param fileName 文件名称
* @param bucketName 桶名称
* @return 外链接
*/
public String getPreviewUrl(String fileName, String bucketName) {
if (StringUtils.isNotBlank(fileName)) {
String bucket = bucketName == null ? this.bucket : bucketName;
try {
minioClient.statObject(StatObjectArgs.builder().bucket(bucket).object(fileName).build());
String url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder()
.method(Method.GET).bucket(bucket).object(fileName).build());
URIBuilder uriBuilder = new URIBuilder(url);
uriBuilder.removeQuery();
return uriBuilder.build().toString();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}