Ali nube OSS imágenes de subida y de eco

documento oficial nube Ali ha estado haciendo muy detallado, dirección indicada más abajo, se recomienda encarecidamente un vistazo a la documentación oficial

https://help.aliyun.com/document_detail/84781.html?spm=a2c4g.11186623.6.788.32037815QD8fgC

paso 1

En primer lugar, el relleno en su respectiva información de configuración del archivo de configuración application.yml (la información de configuración se puede ver en la consola aliyun web oficial)

Introducido en el respectivo archivo dependiente pom

<dependency> 
    <groupId> com.aliyun.oss </ groupId> 
    <artifactId> aliyun-sdk-oss </ artifactId> 
    <versión> 3.8.0 </ versión> 
</ dependency>

 

 

 

 paso 2

herramientas de creación, la información de configuración (este paso puede ser omitido, directamente en la capa de servicio en) application.yml documentos a través de las herramientas, la información de configuración se define como una variable estática, que puede ser directamente a través del "nombre de la clase." La manera de conseguir

. 1  del paquete com.atzjhydx.oss.utils;
 2  
. 3  Importar la org.springframework.beans.factory.InitializingBean;
 . 4  Importación org.springframework.beans.factory.annotation.Value;
 . 5  Importación org.springframework.stereotype.Component;
 . 6  
. 7  @ Componente
 8  // papel InitializingBean es llevar a cabo operaciones a medida después de la inicialización de frijol. 
. 9  pública  de clase ConstantPropertiesUtils los implementos de la InitializingBean {
 10  
11.      @Valor ( "Aliyun.aFile.accessKeyId $ {}" )
 12 es      privada Cadena accessKeyId;
 13 es 
14      @Valor ( "$ {} Aliyun.aFile.accessKeySecret" )
 15      privada Cadena accessKeySecret;
16  
17      @Valor ( "$ {} Aliyun.aFile.endpoint" )
 18      privada punto final de cuerda;
19  
20      @Valor ( "$ {} Aliyun.aFile.bucketName" )
 21      privada Cadena bucketName;
22  
23      pública  estática Cadena END_POINT;
24      pública  estática Cadena BUCKET_NAME;
25      pública  estática Cadena ACCESS_KEY_ID;
26      pública  estática Cadena ACCESS_KEY_SECRET;
27  
28      @ Override
 29      pública  vacío afterPropertiesSet () lanza la excepción {
 30          END_POINT = punto final;
31          BUCKET_NAME = bucketName;
32          ACCESS_KEY_ID = accessKeyId;
33          ACCESS_KEY_SECRET = accessKeySecret;
34      }
 35 }

 

paso 3

capa de servicio en el logro de la función de carga específica

1  paquete com.atzjhydx.oss.service.impl;
2  
3  importación com.aliyun.oss.HttpMethod;
4  importación com.aliyun.oss.OSS;
5  importación com.aliyun.oss.OSSClientBuilder;
6  importación com.aliyun.oss.model.GeneratePresignedUrlRequest;
7  importación com.atzjhydx.oss.service.OssService;
8  importación com.atzjhydx.oss.utils.ConstantPropertiesUtils;
9  importación org.joda.time.DateTime;
10  importación org.springframework.stereotype.Service;
11  importación org.springframework.web.multipart.MultipartFile;
12 es  
13 es  Importar un java.io.InputStream;
 14  Importar la java.net.URL;
 15  Importación java.util.Date;
 16  Importación java.util.UUID;
 . 17  
18 es  @Service
 19.  Pública  clase OssServiceImpl la implementos OssService {
 20 es      @ Override
 21 es      público Cadena uploadFileAvatar (un archivo MultipartFile) {
 22 es  
23 es          // adquirido perfil de configuración de conexión (a través de herramientas personalizadas adquirida) 
24          cadena de punto final = ConstantPropertiesUtils.END_POINT;
 25          String = accessKeyIdConstantPropertiesUtils.ACCESS_KEY_ID;
 26 es          de cadena accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
 27          Cadena bucketName = ConstantPropertiesUtils.BUCKET_NAME;
 28  
29          el OSS ossClient = nulo ;
 30  
31 es          el try {
 32              // Crear instancia oss 
33 es              ossClient = nuevo nuevo . OSSClientBuilder () Build (Punto de llegada, accessKeyId , accessKeySecret);
 34 es  
35              // Obtener flujo de entrada de carga de archivos 
36              InputStream flujoEntrada = file.getInputStream ();
 37 [  
38 es              //Adquiriendo el nombre de archivo (usando los problemas de cobertura evitar UUID de archivo existentes) 
39              Cadena OriginalFileName = file.getOriginalFilename ();
 40              Cadena uuid = UUID.randomUUID toString () () el replaceAll ( "-", "". );
 41 es              Cadena nomArchivo UUID OriginalFileName + = ;
 42 es              // el archivo clasificadas por fecha (herramientas fecha usando joda-tiempo, se puede utilizar Java herramientas propias) 
43 es              rutaDatos String = nuevo nuevo el DateTime () toString ( "AAAA / la MM. / dd " );
 44 es              // fecha del archivo que constituye el nombre de archivo y la ruta de la carpeta de mezcla 
45              filename = rutaDatos +" / "+ nombre de fichero;
 46 es  
47              // llama al método para cargar oss
 48              @Bucket primera nombre de parámetro
 49              // segundo parámetro sube una ruta de acceso y nombre del archivo oss A / B / C / 123.jpg
 50              // tercer parámetro flujo de entrada de carga de archivos 
51 es              ossClient.putObject (bucketName, nombre de archivo, flujoEntrada);
 52 es  
53 es              // URL devuelto conjunto período de 10 años 
54 es              una fecha de vencimiento = nuevo nuevo una fecha ( nuevo nuevo una fecha () la getTime () + 10 * 365 * 24 * 60 * 60 * 1000. );
 55              REQ GeneratePresignedUrlRequest = nuevo nuevo GeneratePresignedUrlRequest (bucketName, nombre de archivo, HttpMethod.GET);
 56 es              req.setExpiration (vencimiento);
 57 es  
58              // eco URL 
59             URL url = ossClient.generatePresignedUrl (req);
60              de retorno url.toString ();
61  
62          } catch (Exception e) {
 63              e.printStackTrace ();
64              de retorno  nulo ;
65          } finalmente {
 66              si (ossClient =! Nula ) {
 67                  ossClient.shutdown ();
68              }
 69          }
 70      }
 71 }

capa del controlador, de vuelta la información url para la primera página

1  paquete com.atzjhydx.oss.controller;
2  
3  importación com.atzjhydx.commonutils.R;
4  importación com.atzjhydx.oss.service.OssService;
5  importación org.springframework.beans.factory.annotation.Autowired;
6  importación org.springframework.web.bind.annotation.CrossOrigin;
7  importación org.springframework.web.bind.annotation.PostMapping;
8  importación org.springframework.web.bind.annotation.RequestMapping;
9  importación org.springframework.web.bind.annotation.RestController;
10  importaciónorg.springframework.web.multipart.MultipartFile;
 . 11  
12 es  @RestController
 13 se @RequestMapping ( "/ eduoss / fileoss" )
 14  @CrossOrigin
 15  pública  clase OssController {
 16  
17.      @Autowired
 18 es      privada OssService ossService;
 . 19  
20 es      // carga un método avatar 
21 se      @PostMapping
 22 es      pública R ^ uploadOssFile (un archivo MultipartFile) {
 23 es  
24          // Obtener carga
 25          // vuelve cargar ruta oss 
26 es          String url =ossService.uploadFileAvatar (archivo);
27  
28          retorno R.ok () de datos ( "URL". , Url);
29      }
 30 }

 

Supongo que te gusta

Origin www.cnblogs.com/leeeeemz/p/12652967.html
Recomendado
Clasificación