集成阿里云OSS
图
阿里云OSS(Object Storage Service)是一个安全、稳定、可扩展的云端对象存储服务,可用于文件存储、图片存储、视频存储等多种场景,在全球范围内为数百万个客户提供业务支持

依赖

<!--阿里OSS-->
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.16.3</version>
</dependency>

上传示例

/**
 * 文件上传(暂支持图片)
 */
@PostMapping("/file/upload")
public Result<String> fileUpload(@RequestParam("file") MultipartFile file) throws IOException {
    // 文件为空
    Assert.isTrue(!file.isEmpty(), "图片不能为空");
    // 文件格式限制
    Assert.isTrue(Objects.requireNonNull(file.getOriginalFilename()).contains("png") ||
            Objects.requireNonNull(file.getOriginalFilename()).contains("gif") ||
            Objects.requireNonNull(file.getOriginalFilename()).contains("jpg"), "仅支持png/jpg/gif图片");
    // 文件名
    String fileName = new ObjectId().toString();
    // 文件后缀
    String suffix = Objects.requireNonNull(file.getOriginalFilename()).substring(file.getOriginalFilename().lastIndexOf("."));
    String endpoint = "https://oss-cn-shanghai.aliyuncs.com";
    String accessKeyId = "LTAI5tQC6dX28tEDikgw1o73";
    String accessKeySecret = "sE1Nrw1evm0eTyrJ3c1R1kWVaFjNMr";
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    String bucketName = "fan-demo-com";
    String format = new SimpleDateFormat("yyyyMMdd").format(new Date());
    String objectName = format + "/" + fileName + suffix;
    ossClient.putObject(bucketName, objectName, file.getInputStream());
    ossClient.shutdown();
    // 返回图片请求路径
    return Result.data("添加成功", endpoint.replace("//", "//" + bucketName + ".") + "/" +objectName);
}

地址文档

https://help.aliyun.com/document_detail/31837.htm?spm=a2c4g.11186623.0.0.72912ff2rGtGKA#concept-zt4-cvy-5db