springboot 向minio上传excel文件
时间: 2023-10-07 11:12:10 浏览: 46
可以使用minio-java-sdk来上传文件到minio。以下是一个示例代码:
```java
import io.minio.MinioClient;
import io.minio.errors.MinioException;
import io.minio.policy.PolicyType;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
@Service
public class MinioService {
@Value("${minio.endpoint}")
private String endpoint;
@Value("${minio.accessKey}")
private String accessKey;
@Value("${minio.secretKey}")
private String secretKey;
@Value("${minio.bucketName}")
private String bucketName;
public void uploadExcel(MultipartFile file) throws IOException, NoSuchAlgorithmException, InvalidKeyException, MinioException {
try (InputStream inputStream = file.getInputStream()) {
MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);
if (!minioClient.bucketExists(bucketName)) {
minioClient.makeBucket(bucketName);
minioClient.setBucketPolicy(bucketName, "*", PolicyType.READ_WRITE);
}
String filename = file.getOriginalFilename();
minioClient.putObject(bucketName, filename, inputStream, file.getSize(), "application/vnd.ms-excel");
}
}
}
```
在以上代码中,我们使用了minio-java-sdk来上传文件到minio。我们首先检查了minio中是否存在指定的bucket,如果不存在则创建一个bucket,并设置policy为可读可写。然后使用putObject方法将文件上传到minio中。在这个例子中,我们将文件类型设置为"application/vnd.ms-excel",因为我们上传的是一个excel文件。