Java usa minio para cargar archivos en lotes

Primero presenta minio, nunca lo he usado antes

MinlO es un servicio de almacenamiento de objetos basado en el protocolo de código abierto Apache License v2.0. Es compatible con la interfaz del servicio de almacenamiento en la nube de Amazon S3 y es muy adecuado para almacenar datos no estructurados de gran capacidad. Por ejemplo, imágenes, videos, archivos de registro, datos de respaldo e imágenes de contenedores/máquinas virtuales, etc., y un archivo de objeto puede tener cualquier tamaño, desde unos pocos kb hasta un máximo de 5T. MinlO es un servicio muy ligero que se puede integrar fácilmente con otras aplicaciones, como NodeJS, Redis o MySQL.
MinIO es nativo de Kubernetes y es el único paquete de almacenamiento de objetos disponible en todas las nubes públicas, todas las distribuciones de Kubernetes, nubes privadas y en el perímetro. MinIO está definido por software y es 100 % de código abierto bajo GNU AGPL v3.

Aquí primero configure la información de minio en nacos:

inserte la descripción de la imagen aquíPrimera importación de dependencias minio:

        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>${
    
    minio.version}</version>
        </dependency>

Inyectar en el controlador:

    @Autowired
    MinioClient minioClient;

    @Autowired
    private MinioConfig minioConfig;

    @Value(value = "${minio.bucketName}")
    private String bucket;

clase de configuración minio: MinioConfig es el siguiente:

@Configuration
@ConfigurationProperties(prefix = "minio")
public class MinioConfig
{
    
    
    /**
     * 服务地址
     */
    private String url;

    /**
     * 用户名
     */
    private String accessKey;

    /**
     * 密码
     */
    private String secretKey;

    /**
     * 存储桶名称
     */
    private String bucketName;

    public String getUrl()
    {
    
    
        return url;
    }

    public void setUrl(String url)
    {
    
    
        this.url = url;
    }

    public String getAccessKey()
    {
    
    
        return accessKey;
    }

    public void setAccessKey(String accessKey)
    {
    
    
        this.accessKey = accessKey;
    }

    public String getSecretKey()
    {
    
    
        return secretKey;
    }

    public void setSecretKey(String secretKey)
    {
    
    
        this.secretKey = secretKey;
    }

    public String getBucketName()
    {
    
    
        return bucketName;
    }

    public void setBucketName(String bucketName)
    {
    
    
        this.bucketName = bucketName;
    }

    @Bean
    public MinioClient getMinioClient()
    {
    
    
        return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();
    }
}

Interfaz de carga de un solo archivo:

@PostMapping("/uploadFile")
    R upload(MultipartFile file) throws Exception {
    
    
        String fileName = FileUploadUtils.extractFilename(file);
        PutObjectArgs args = PutObjectArgs.builder()
                .bucket(minioConfig.getBucketName())
                .object(fileName)
                .stream(file.getInputStream(), file.getSize(), -1)
                .contentType(file.getContentType())
                .build();
        minioClient.putObject(args);
        System.out.println(fileName);
        return R.ok(fileName);

    }

Interfaz de carga de archivos múltiples:

 @ApiOperation("多文件上传minio")
    @PostMapping("/uploadAllFile")
    R upload(MultipartFile[] files) throws Exception {
    
    

        for (MultipartFile file : files) {
    
    
            String fileName = FileUploadUtils.extractFilename(file);
            PutObjectArgs args = PutObjectArgs.builder()
                    .bucket(minioConfig.getBucketName())
                    .object(fileName)
                    .stream(file.getInputStream(), file.getSize(), -1)
                    .contentType(file.getContentType())
                    .build();
            minioClient.putObject(args);
            System.out.println(fileName);
        }
        return R.ok();
    }

Seleccionar varios archivos en cartero:
inserte la descripción de la imagen aquí
subir resultado:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_42260782/article/details/131128350
Recomendado
Clasificación