SpringBoot integra Alibaba Cloud OSS para realizar un servicio de almacenamiento de imágenes

Alibaba Cloud OSS (Servicio de almacenamiento de objetos) es un poderoso servicio de almacenamiento en la nube que se puede usar para almacenar y administrar una gran cantidad de archivos estáticos, como imágenes, videos, audios, etc. Spring Boot se integra con Alibaba Cloud OSS para realizar servicios de carga y almacenamiento de imágenes, que tiene los siguientes escenarios y significados:

  • Almacenamiento distribuido: al usar Alibaba Cloud OSS, los recursos estáticos, como imágenes, se pueden almacenar en la nube para realizar el almacenamiento y la administración distribuidos. Esto puede mejorar la disponibilidad y confiabilidad de los datos, reducir el riesgo de un punto único de falla y garantizar que las aplicaciones puedan responder rápidamente frente a un alto acceso simultáneo.

  • Expansión elástica: Alibaba Cloud OSS tiene una gran escalabilidad y puede expandir automáticamente la capacidad de almacenamiento y el rendimiento de acuerdo con las necesidades comerciales. Cuando aumenta la cantidad de usuarios de la aplicación y se deben procesar más solicitudes de carga de imágenes, puede confiar en la capacidad de expansión elástica de Alibaba Cloud OSS sin preocuparse por los cuellos de botella en el rendimiento del sistema.

  • Garantía de seguridad: Alibaba Cloud OSS proporciona una variedad de mecanismos de seguridad, como verificación de identidad, administración de derechos, etc., que pueden controlar los derechos de acceso de los usuarios a las imágenes almacenadas en OSS. Al integrar marcos de seguridad como Spring Security, se puede realizar el control de acceso y la gestión de permisos de las imágenes cargadas para garantizar que solo los usuarios autorizados puedan acceder y descargar imágenes.

  • Proxy de recursos y aceleración: a través de la función CDN (red de entrega de contenido) de OSS, las imágenes almacenadas en OSS se pueden almacenar en caché en nodos de todo el mundo para acelerar la transmisión y la velocidad de carga de las imágenes. De esta forma, se puede mejorar la experiencia del usuario al acceder a las imágenes, se puede reducir el tiempo de espera provocado por los retrasos en la red y se puede mejorar el rendimiento de la aplicación.

  • Rentabilidad: el uso de Alibaba Cloud OSS puede trasladar el costo de almacenar y procesar una gran cantidad de imágenes al proveedor de servicios en la nube. OSS proporciona un método de facturación flexible, facturando de acuerdo con la capacidad de almacenamiento y el tráfico de red, para que los desarrolladores puedan controlar los costos de acuerdo con las necesidades reales y evitar una inversión excesiva en equipos y mantenimiento de hardware.

El proceso de implementación de este artículo:

imagen-20230620075847664

1. Descripción general del SFA

Object Storage Service (OSS) es un servicio de almacenamiento en la nube masivo, seguro, de bajo costo y altamente confiable, adecuado para almacenar cualquier tipo de archivo. Expansión elástica de capacidad y poder de procesamiento, múltiples tipos de almacenamiento para elegir y optimización integral de los costos de almacenamiento.

Dirección: https://www.aliyun.com/product/oss

imagen-20230620082640789

2. Solicitud de cuenta

2.1 Servicios de Compra

Cómo comprar servicios de suscripción.

imagen-20230620082945562

imagen-20230620082954129

Compre un paquete de tráfico descendente: (Puede usarlo sin comprarlo y pagar de acuerdo con el tráfico)

imagen-20230620083008045

Nota: El tráfico ascendente de OSS es gratuito, pero el tráfico descendente debe comprarse.

2.2 Crear cubos

Para usar OSS, primero debe crear un cubo. El cubo se traduce al chino como un cubo de agua. Los recursos de imagen almacenados se consideran agua. Para retener agua, debe tener un cubo. Ingrese a la consola, https://oss.console.aliyun.com/overview

imagen-20230620083026579

Después de seleccionar Cubo, puede ver la información correspondiente, como: url, consumo de tráfico, etc.:

imagen-20230620083037609

Gestión de archivos:

imagen-20230620083046008

Archivos de vista:

imagen-20230620083137039

3. Herramienta de extracción de plantilla

Alibaba Cloud OSS está empaquetado en forma de una herramienta personalizada

imagen-20230620091736515

Clase de configuración OssProperties

@Data
@ConfigurationProperties(prefix = "tanhua.oss")
public class OssProperties {
    
    

    private String accessKey; 
    private String secret;
    private String bucketName;
    private String url; //域名
    private String endpoint;
}

Objeto de plantilla OssTemplate

package com.tanhua.autoconfig.template;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.tanhua.autoconfig.properties.OssProperties;

import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

public class OssTemplate {
    
    

    private OssProperties properties;

    public OssTemplate(OssProperties properties) {
    
    
        this.properties = properties;
    }

    public String upload(String filename, InputStream is) {
    
    
        // 拼写图片路径
        filename = new SimpleDateFormat("yyyy/MM/dd").format(new Date())
                +"/"+ UUID.randomUUID().toString() + filename.substring(filename.lastIndexOf("."));


        // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
        String endpoint = properties.getEndpoint();
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
        String accessKeyId = properties.getAccessKey();
        String accessKeySecret = properties.getSecret();

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,accessKeySecret);
        // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。
        ossClient.putObject(properties.getBucketName(), filename, is);
        // 关闭OSSClient。
        ossClient.shutdown();

        String url = properties.getUrl() +"/" + filename;
        return url;
    }
}

Clase de configuración AutoConfiguration

@EnableConfigurationProperties({
    
    
        OssProperties.class
})
public class AutoConfiguration {
    
    

    @Bean
    public OssTemplate ossTemplate(OssProperties properties) {
    
    
        return new OssTemplate(properties);
    }
}

contenido de configuración yml

tanhua: # 都换成自己的
  oss:
    accessKey: LTAI4GKgob9vZ53k2SZdyAC7
    secret: LHLBvXmILRoyw0niRSBuXBZewQ30la
    endpoint: oss-cn-beijing.aliyuncs.com
    bucketName: tanhua001
    url: https://tanhua001.oss-cn-beijing.aliyuncs.com/

4. prueba

Escribir una clase de prueba OssTest

@RunWith(SpringRunner.class)
@SpringBootTest(classes = AppServerApplication.class)
public class OssTest {
    
    

    @Autowired
    private OssTemplate template;

    @Test
    public void testTemplateUpload() throws FileNotFoundException {
    
    
        String path = "填自己的";
        FileInputStream inputStream = new FileInputStream(new File(path));
        String imageUrl = template.upload(path, inputStream);
        System.out.println(imageUrl);
    }
}

Éxito de la prueba:

putStream = nuevo FileInputStream(nuevo archivo(ruta));
String imageUrl = template.upload(ruta, inputStream);
System.out.println(imageUrl);
}
}


测试成功:

![image-20230620091938050](https://img-blog.csdnimg.cn/img_convert/19d705a73cff538552695d9b0d4c5b1c.png)

Supongo que te gusta

Origin blog.csdn.net/qq_51808107/article/details/131299958
Recomendado
Clasificación