Java实现文件上传至Minio

该文章演示了如何使用JavaSDK与Minio服务进行交互,实现文件上传到Minio服务器的过程。代码示例中,首先引入了Minio的依赖,然后从配置文件读取Minio的URL、访问密钥和秘钥。接着,在Controller中创建MinioClient对象,检查存储桶是否存在,如果不存在则创建,然后将文件上传到指定的存储桶中,并生成预签名的URL。前端部分使用ElementUI的上传组件与后端接口配合,实现文件上传功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java实现文件上传至Minio

首先导入所需依赖

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>3.0.12</version>
</dependency>

配置文件中加入相关配置

# minio配置
minio:
  url: 路径
  accessKey: 账号 
  secretKey: 密码
  useSSL: 是否使用https

Controller中代码

@RestController
@RequestMapping("/file")
@Slf4j
public class FileUpLoadController {

    @Value("${minio.url}")
    private String url;

    @Value("${minio.accessKey}")
    private String accessKey;

    @Value("${minio.secretKey}")
    private String secretKey;

    /**
     * 上传文件到minio
     *
     * @param file
     * @return
     * @throws Exception
     */
    @PostMapping("/uploadFile")
    public AjaxResult uploadFile(@RequestParam("imgFile") MultipartFile file) throws Exception {
        // 创建minio链接
        MinioClient minioClient = new MinioClient(url, accessKey, secretKey);
        // 得到文件流
        InputStream is = file.getInputStream();
        // 文件名
        String fileName = file.getOriginalFilename().replace("-", "");
        // 文件类型
        String contentType = file.getContentType();

        // 判断存储桶是否存在(注意: 存储桶名称不可包含大写字母)
        boolean bucketExists = minioClient.bucketExists("test-bucket");
        if (!bucketExists) {
            // 创建存储桶
            minioClient.makeBucket("test-bucket");
        }

        // 将文件放置到存储桶中
        minioClient.putObject("test-bucket", fileName, is, contentType);
        String url = minioClient.presignedGetObject("test-bucket", fileName);
        log.info(fileName + "文件上传成功");
        return AjaxResult.success(url + "文件上传成功");
    }

前端代码

<el-form-item label-width="100px" label="上传图片" prop="uploadImg">
  <el-upload ref="pic" :headers="headers" accept="image/*" :on-success="uploadSuccess" :file-list="imgList"
    :action="imgAction" :before-upload="beforeUpload"  name="imgFile">
    <el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
  </el-upload>
</el-form-item>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值