SpringBoot(Java)整合腾讯云COS(阿里云OSS)实现图片上传功能
以下是一个简化的Spring Boot应用程序,用于整合腾讯云COS实现图片上传的功能。请注意,这里仅提供了核心代码,并假设所需的配置已经在application.properties文件中设置。
import com.qcloud.cos.COSClient;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@RestController
public class FileUploadController {
@Autowired
private COSClient cosClient;
@Value("${cos.bucket.name}")
private String bucketName;
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "文件不能为空";
}
// 文件名处理,避免文件名中有特殊字符导致上传失败
String fileName = file.getOriginalFilename();
try {
// 创建上传请求
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, file.getInputStream());
// 执行上传操作
PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
// 返回上传结果,可以根据需要自定义返回格式
return "文件上传成功, 文件 key: " + fileName;
} catch (Exception e) {
e.printStackTrace();
return "文件上传失败: " + e.getMessage();
}
}
}
在这个例子中,我们创建了一个简单的REST控制器,其中包含一个处理文件上传的端点。我们使用MultipartFile
接口来接收上传的文件,并使用腾讯云提供的COSClient
来执行实际的上传操作。这个例子假设你已经配置了application.properties
文件中的cos.bucket.name
以及腾讯云COS的其他必要配置,并且已经在Spring Boot应用程序中配置了必要的客户端信息。
评论已关闭