智慧保安后台管理-外网-验收版本
Administrator
2021-07-30 2b425660d09bf3d87433ad46708014819fc846eb
新增app 文件上传接口
1 files modified
54 ■■■■■ changed files
src/main/java/org/springblade/modules/resource/endpoint/OssEndpoint.java 54 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/resource/endpoint/OssEndpoint.java
@@ -17,6 +17,8 @@
package org.springblade.modules.resource.endpoint;
import com.alibaba.fastjson.JSON;
import io.minio.*;
import io.minio.errors.*;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
@@ -43,6 +45,14 @@
import org.springblade.modules.resource.service.IAttachService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
 * 对象存储端点
@@ -159,6 +169,50 @@
        return R.data(bladeFile);
    }
    /**
     *
     * app 文件上传
     * @param file 图片对象
     */
    @PostMapping("put-file-app")
    public R putFileApp(@RequestParam MultipartFile file) throws IOException, ServerException, InsufficientDataException, InternalException, InvalidResponseException, InvalidKeyException, NoSuchAlgorithmException, XmlParserException, ErrorResponseException {
        //填写你文件上传的地址以及相应信息
        String url = "http://192.168.0.109:9000";
        String access = "minioadmin";
        String secret = "minioadmin";
        String bucket = "zhba";
        MinioClient minioClient =
            MinioClient.builder()
                .endpoint(url)
                .credentials(access, secret)
                .build();
        // 检查存储桶是否已经存在
        boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build());
        if (!isExist) {
            // 创建一个名为zip的存储桶,用于zip文件。
            minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
            minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucket).build());
        }
        String fileName = file.getOriginalFilename();
        String newName = "upload/picture/" + UUID.randomUUID().toString().replaceAll("-", "")
            + fileName.substring(fileName.lastIndexOf("."));
        InputStream in = file.getInputStream();
        //创建头部信息
        Map<String, String> headers = new HashMap<>(1 << 2);
        //添加自定义内容类型
        headers.put("Content-Type", "application/octet-stream");
        //上传
        minioClient.putObject(
            PutObjectArgs.builder().bucket(bucket).object(newName).stream(
                in, in.available(), -1)
                .headers(headers)
                .build());
        in.close();
        String urls = "http://192.168.0.109:9000/jfpt/" + newName;
        return R.data(urls);
    }
    /**
     * 上传文件
     *