La configuración de Spring Boot utiliza Alibaba Cloud OSS para realizar la carga de imágenes

Primero, maven build pom add

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.10.2</version>
</dependency>

application.yml configura algunos parámetros requeridos por oss
Inserte la descripción de la imagen aquí

Escribir clase de herramienta OssUtils

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import com.aliyun.oss.ClientConfiguration;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.ObjectMetadata;

import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
@Component
public class OssUtils {

    @Value("${oss.accessKeyId}")
    public String accessKeyId;

    @Value("${oss.accessKeySecret}")
    public String accessKeySecret;

    @Value("${oss.endpoint}")
    public String endpoint;

    @Value("${oss.bucketName}")
    public String bucketName;

    public static OSSClient client;
    public  OSSClient initClient(){
        if(null==client){
            ClientConfiguration conf = new ClientConfiguration();
            conf.setConnectionTimeout(5000);
            conf.setMaxErrorRetry(10);
            client = new OSSClient("http://" + endpoint, accessKeyId, accessKeySecret,conf);
        }
        return client;
    }


    /**
     * 上传文件
     *
     * @param fileKey
     * @param content
     * @throws FileNotFoundException
     */
    public boolean putObjectForInputStream(String fileKey, InputStream content) {
        if (null == fileKey || "" == fileKey.trim())
            return false;
        try {
            initClient();
            ObjectMetadata meta = new ObjectMetadata();
            client.putObject(bucketName, fileKey, content, meta);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

    /**
     * 上传图片
     * @param imageName
     * @param content
     * @param if400
     * @throws FileNotFoundException
     */
    public String putObjectForImage(String imageName, InputStream content, boolean if400) {
        if (null == imageName || "" == imageName.trim())
            return null;
        try {
            String file = "images/" + imageName.substring(0, imageName.indexOf(".")) + "/" + imageName;
            putObjectForInputStream(file,content);
            return "http://"+bucketName+"."+endpoint+"/"+file;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


    public String getObject(String key) {
        try {
            OSSObject object = client.getObject(bucketName, key);
            InputStream objectContent = object.getObjectContent();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int i = -1;
            while ((i = objectContent.read()) != -1) {
                baos.write(i);
            }
            objectContent.close();
            return baos.toString("UTF-8");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


}

Método de implementación de la interfaz escriba una demostración aquí

@Resource
OssUtils imgUpload;

/**
     * 上传人脸图片
     */
    @PostMapping("uploadFaceData")
    @ResponseBody
    public ResultBody uploadFaceData(MultipartFile file) {
        // 1.获取上传文件输入流
        InputStream inputStream = null;
        try {
            inputStream = file.getInputStream();
        } catch (Exception e) {
            return ResultBody.error(ErrorEnum.ADDHOTEL_PARAMS_ERROR);
        }

        String url= imgUpload.putObjectForImage("test.jpg",inputStream,false);

        return ResultBody.success(url);
    }

Si tiene éxito, puede guardar la URL y usarla para recuperar recursos de imagen e imprimir la consola para depurar.
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_23140197/article/details/109095787
Recomendado
Clasificación