pom.xml配置文件内添加依赖,如下所示:

    ApiBoot所提供的依赖都不需要添加版本号,具体查看

    在使用ApiBoot Oss时,只需要注入ApiBootOssService类就可以完成默认方法的使用,如下所示:

    1. @Autowired
      private ApiBootOssService apiBootOssService;

    流上传

    1. /**
    2. * 流方式上传
    3. */
    4. @Test
    5. public void uploadBytes() {
    6. ApiBootObjectStorageResponse response = apiBootOssService.upload("admin.txt", "admin".getBytes());
    7. logger.info("文件名称:{}", response.getObjectName());
    8. logger.info("文件访问路径:{}", response.getObjectUrl());
    9. }

    本地文件上传

    文件流上传

    1. /**
    2. * 文件流方式上传
    3. *
    4. * @throws Exception
    5. */
    6. public void uploadInputStream() throws Exception {
    7. FileInputStream inputStream = new FileInputStream(new File("/Users/yuqiyu/Downloads/logo.png"));
    8. ApiBootObjectStorageResponse response = apiBootOssService.upload("测试.png", inputStream);
    9. logger.info("文件名称:{}", response.getObjectName());
    10. logger.info("文件访问路径:{}", response.getObjectUrl());
    11. }

    下载文件

    1. /**
    2. * 下载文件
    3. */
    4. @Test
    5. public void download() {
    6. apiBootOssOverrideService.download("测试.png", "/Users/yuqiyu/Downloads/测试.png");
    7. }

    删除文件

    MultipartFile 上传文件

    如果你是通过SpringMvc提供的MultipartFile对象进行上传文件,可以通过如下示例进行上传:

    1. MultipartFile multipartFile = ..;
    2. // 流方式上传
    3. ApiBootObjectStorageResponse responseByte = apiBootOssService.upload("测试.png", multipartFile.getBytes());
    4. // 文件输入流方式上传
    5. ApiBootObjectStorageResponse responseIs = apiBootOssService.upload("测试.png", multipartFile.getInputStream());

    自定义扩展首先需要创建类并继承ApiBootOssService,如下所示:

    1. //...
    2. public class ApiBootOssOverrideService extends ApiBootOssService {
    3. /**
    4. * logger instance
    5. */
    6. static Logger logger = LoggerFactory.getLogger(ApiBootOssOverrideService.class);
    7.  
    8. * 实现父类构造函数
    9. *
    10. * @param endpoint 外网节点
    11. * @param bucketName 存储空间名称
    12. * @param accessKeyId 阿里云账号授权Id
    13. * @param accessKeySecret 阿里云账号授权Secret
    14. * @param domain 自定义域名
    15. */
    16. public ApiBootOssOverrideService(String endpoint, String bucketName, String accessKeyId, String accessKeySecret, String domain) {
    17. super(endpoint, bucketName, accessKeyId, accessKeySecret, domain);
    18. }
    19.  
    20. /**
    21. * 创建bucket存储
    22. *
    23. * @param bucketName 存储名称
    24. */
    25. public void createBucket(String bucketName) {
    26. OSSClient ossClient = getOssClient();
    27. Bucket bucket = ossClient.createBucket(bucketName);
    28. logger.info("新创建存储空间名称:{}", bucket.getName());
    29. logger.info("新创建存储空间所属人:{}", bucket.getOwner().getDisplayName());
    30. closeOssClient(ossClient);
    31. }
    32. }

    如上createBucket方法所示ApiBootOssService内部提供了获取OssClient以及关闭OssClient连接的方法,可以直接调用。

    扩展生效

    我们自定义的扩展,需要将实例放入SpringIOC容器内,方便我们在使用处进行注入,要注意,由于构造函数参数的原因,无法直接通过@Service或者@Component注解进行标注,需要通过如下方式: