在pom.xml
配置文件内添加依赖,如下所示:
ApiBoot
所提供的依赖都不需要添加版本号,具体查看
在使用ApiBoot Oss
时,只需要注入ApiBootOssService
类就可以完成默认方法的使用,如下所示:
- @Autowired
private ApiBootOssService apiBootOssService;
流上传
- /**
- * 流方式上传
- */
- @Test
- public void uploadBytes() {
- ApiBootObjectStorageResponse response = apiBootOssService.upload("admin.txt", "admin".getBytes());
- logger.info("文件名称:{}", response.getObjectName());
- logger.info("文件访问路径:{}", response.getObjectUrl());
- }
本地文件上传
文件流上传
- /**
- * 文件流方式上传
- *
- * @throws Exception
- */
- public void uploadInputStream() throws Exception {
- FileInputStream inputStream = new FileInputStream(new File("/Users/yuqiyu/Downloads/logo.png"));
- ApiBootObjectStorageResponse response = apiBootOssService.upload("测试.png", inputStream);
- logger.info("文件名称:{}", response.getObjectName());
- logger.info("文件访问路径:{}", response.getObjectUrl());
- }
下载文件
- /**
- * 下载文件
- */
- @Test
- public void download() {
- apiBootOssOverrideService.download("测试.png", "/Users/yuqiyu/Downloads/测试.png");
- }
删除文件
MultipartFile 上传文件
如果你是通过SpringMvc
提供的MultipartFile
对象进行上传文件,可以通过如下示例进行上传:
- MultipartFile multipartFile = ..;
- // 流方式上传
- ApiBootObjectStorageResponse responseByte = apiBootOssService.upload("测试.png", multipartFile.getBytes());
- // 文件输入流方式上传
- ApiBootObjectStorageResponse responseIs = apiBootOssService.upload("测试.png", multipartFile.getInputStream());
自定义扩展首先需要创建类并继承ApiBootOssService
,如下所示:
- //...
- public class ApiBootOssOverrideService extends ApiBootOssService {
- /**
- * logger instance
- */
- static Logger logger = LoggerFactory.getLogger(ApiBootOssOverrideService.class);
- * 实现父类构造函数
- *
- * @param endpoint 外网节点
- * @param bucketName 存储空间名称
- * @param accessKeyId 阿里云账号授权Id
- * @param accessKeySecret 阿里云账号授权Secret
- * @param domain 自定义域名
- */
- public ApiBootOssOverrideService(String endpoint, String bucketName, String accessKeyId, String accessKeySecret, String domain) {
- super(endpoint, bucketName, accessKeyId, accessKeySecret, domain);
- }
- /**
- * 创建bucket存储
- *
- * @param bucketName 存储名称
- */
- public void createBucket(String bucketName) {
- OSSClient ossClient = getOssClient();
- Bucket bucket = ossClient.createBucket(bucketName);
- logger.info("新创建存储空间名称:{}", bucket.getName());
- logger.info("新创建存储空间所属人:{}", bucket.getOwner().getDisplayName());
- closeOssClient(ossClient);
- }
- }
如上createBucket
方法所示ApiBootOssService
内部提供了获取OssClient
以及关闭OssClient
连接的方法,可以直接调用。
扩展生效
我们自定义的扩展,需要将实例放入SpringIOC
容器内,方便我们在使用处进行注入,要注意,由于构造函数参数的原因,无法直接通过@Service
或者@Component
注解进行标注,需要通过如下方式: