图片上传到minio服务器时,如何获取到图片的base64?示例代码
时间: 2024-03-01 11:55:41 浏览: 428
springboot+minio文件服务器的demo
5星 · 资源好评率100%
在将图片上传到 Minio 服务器时,可以通过读取图片文件,将其转换为字节数组,再将字节数组编码为base64字符串。以下是一个示例代码:
```java
import io.minio.MinioClient;
import io.minio.errors.*;
import java.io.*;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import javax.xml.stream.XMLStreamException;
public class MinioExample {
public static void uploadImage(String bucketName, String objectName, String imagePath, MinioClient minioClient)
throws InvalidKeyException, NoSuchAlgorithmException, IOException, InsufficientDataException,
ErrorResponseException, InternalException, InvalidResponseException, NoSuchBucketException,
XmlParserException {
// 读取图片文件
File file = new File(imagePath);
FileInputStream inputStream = new FileInputStream(file);
// 将图片流转换为字节数组
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int length;
while ((length = inputStream.read(buf)) != -1) {
outputStream.write(buf, 0, length);
}
byte[] bytes = outputStream.toByteArray();
// 将字节数组编码为base64字符串
String base64 = Base64.getEncoder().encodeToString(bytes);
// 关闭流
outputStream.close();
inputStream.close();
// 将base64字符串上传到Minio服务器
minioClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes), bytes.length, null, null, null);
// 输出base64字符串
System.out.println("Base64: " + base64);
}
}
```
在上述代码中,`bucketName`参数指定上传图片的 bucket 名称,`objectName`参数指定图片的对象名称,`imagePath`参数指定图片文件的路径,`minioClient`参数是已经初始化好的 MinioClient 对象。该方法会将图片上传到 Minio 服务器,并输出图片的base64编码字符串。
阅读全文