SpringBoot es un andamio de desarrollo rápido basado en el marco Spring, que simplifica enormemente la dificultad de usar el marco Spring. Alibaba Cloud OSS es un servicio de almacenamiento de objetos distribuidos proporcionado por Alibaba Cloud, que tiene las características de alta disponibilidad, alta confiabilidad y sólida seguridad. Los siguientes son varios pasos para implementar la carga de archivos usando SpringBoot + oss:
1. Introducir las dependencias del SDK de almacenamiento en la nube
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.9.3</version>
</dependency>
2. Configurar los parámetros de OSS
application.properties
Agregue la siguiente configuración en :
oss.endpoint=oss-cn-hangzhou.aliyuncs.com
oss.accessKeyId=your_accessKeyId
oss.accessKeySecret=your_accessKeySecret
oss.bucketName=your_bucketName
oss.folder=your_folder
3. Crear cliente OSS
@Configuration
public class OSSClientConfig {
@Value("${oss.endpoint}")
private String endpoint;
@Value("${oss.accessKeyId}")
private String accessKeyId;
@Value("${oss.accessKeySecret}")
private String accessKeySecret;
@Value("${oss.bucketName}")
private String bucketName;
@Value("${oss.folder}")
private String folder;
@Bean
public OSSClient ossClient() {
return new OSSClient(endpoint, accessKeyId, accessKeySecret);
}
@Bean
public String bucketName() {
return bucketName;
}
@Bean
public String folder() {
return folder;
}
}
4. Escribe un servicio de carga de archivos.
@Service
public class FileUploadService {
private final OSSClient ossClient;
private final String bucketName;
private final String folder;
public FileUploadService(OSSClient ossClient, String bucketName, String folder) {
this.ossClient = ossClient;
this.bucketName = bucketName;
this.folder = folder;
}
public String uploadFile(String fileName, InputStream inputStream) throws IOException {
// 设置文件路径
String key = folder + "/" + fileName;
// 上传文件
ossClient.putObject(bucketName, key, inputStream);
// 关闭OSSClient
ossClient.shutdown();
// 返回文件链接
return "https://" + bucketName + "." + ossClient.getEndpoint().toString() + "/" + key;
}
}
5. Utilice el servicio de carga de archivos en Controller
@RestController
public class FileUploadController {
private final FileUploadService fileUploadService;
public FileUploadController(FileUploadService fileUploadService) {
this.fileUploadService = fileUploadService;
}
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) throws IOException {
return fileUploadService.uploadFile(file.getOriginalFilename(), file.getInputStream());
}
}
Los anteriores son los pasos para implementar la carga de archivos usando SpringBoot + oss. A través de los pasos anteriores, la función de carga de archivos se puede implementar de manera conveniente y rápida.