Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
En esta publicación, aprenderemos cómo integrar una aplicación Spring Boot con un servicio de almacenamiento de archivos, como Amazon Simple Storage Service (S3) o Google Drive.
Comenzaremos creando un nuevo proyecto Spring Boot y agregando las dependencias requeridas. Luego, configuraremos la aplicación para usar el servicio de almacenamiento de archivos.
Finalmente, escribiremos un controlador simple para probar la integración del almacenamiento de archivos.
Primero, crearemos un nuevo proyecto Spring Boot usando Spring Initializr. Llamaremos al proyecto file-storage-service-integration
.
Seleccionaremos las siguientes dependencias:
A continuación, necesitaremos configurar la aplicación para usar el servicio de almacenamiento de archivos.
Para usar Amazon S3, necesitaremos agregar la siguiente configuración al archivo application.properties
:
cloud.aws.credentials.access-key=${accessKey}
cloud.aws.credentials.secret-key=${secretKey}
cloud.aws.region.static=${region}
cloud.aws.s3.bucket=${bucketName}
Reemplace ${accessKey}
, ${secretKey}
, ${region}
y ${bucketName}
con los valores apropiados para su cuenta de Amazon S3.
Para usar Google Drive, necesitaremos agregar la siguiente configuración al archivo application.properties
:
google.drive.credentials.file=${credentialsFile}
Reemplace ${credentialsFile}
con la ruta al archivo de credenciales de Google Drive.
Finalmente, escribiremos un controlador simple para probar la integración del almacenamiento de archivos.
El siguiente controlador cargará un archivo en Amazon S3:
@Controller
public class S3Controller {
@Autowired
private AmazonS3 amazonS3;
@PostMapping("/s3/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
String fileName = file.getOriginalFilename();
String contentType = file.getContentType();
amazonS3.putObject(new PutObjectRequest(bucketName, fileName, file.getInputStream(), new ObjectMetadata())
.withCannedAcl(CannedAccessControlList.PublicRead));
return "redirect:/";
}
}
En el controlador, inyectamos el bean AmazonS3
y lo usamos para cargar el archivo en Amazon S3. También establecemos el encabezado Content-Type
al valor del parámetro file
.
El siguiente controlador cargará un archivo en Google Drive:
@Controller
public class DriveController {
@Autowired
private Drive drive;
@PostMapping("/drive/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
File fileMetadata = new File();
fileMetadata.setName(file.getOriginalFilename());
fileMetadata.setMimeType(file.getContentType());
FileContent fileContent = new FileContent(file.getContentType(), file);
drive.files().create(fileMetadata, fileContent)
.setFields("id")
.execute();
return "redirect:/";
}
}
En el controlador, inyectamos el bean Drive
y lo usamos para subir el archivo a Google Drive. También establecemos el encabezado Content-Type
al valor del parámetro file
.
Para probar la integración del almacenamiento de archivos, debemos iniciar la aplicación y cargar un archivo.
Para probar la integración de Amazon S3, necesitaremos iniciar la aplicación y cargar un archivo en el punto final /s3/upload
.
El archivo se cargará en Amazon S3 y se devolverá un código de estado 200
.
Para probar la integración de Google Drive, debemos iniciar la aplicación y cargar un archivo en el punto final /drive/upload
.
El archivo se cargará en Google Drive y se devolverá un código de estado 200
.
En esta publicación, aprendimos cómo integrar una aplicación Spring Boot con un servicio de almacenamiento de archivos, como Amazon Simple Storage Service (S3) o Google Drive.
Comenzamos creando un nuevo proyecto Spring Boot y agregando las dependencias requeridas. Luego, configuramos la aplicación para usar el servicio de almacenamiento de archivos.
Finalmente, escribimos un controlador simple para probar la integración del almacenamiento de archivos.