123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package com.ruoyi.oss.service.abstractd;
- import cn.hutool.core.io.IoUtil;
- import cn.hutool.core.util.IdUtil;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.oss.entity.UploadResult;
- import com.ruoyi.oss.properties.OssProperties;
- import com.ruoyi.oss.service.IOssStrategy;
- import java.io.InputStream;
- /**
- * 对象存储策略(支持七牛、阿里云、腾讯云、minio)
- *
- * @author Lion Li
- */
- public abstract class AbstractOssStrategy implements IOssStrategy {
- protected OssProperties properties;
- public abstract void init(OssProperties properties);
- @Override
- public abstract void createBucket();
- @Override
- public abstract String getServiceType();
- public String getPath(String prefix, String suffix) {
- // 生成uuid
- String uuid = IdUtil.fastSimpleUUID();
- // 文件路径
- String path = DateUtils.datePath() + "/" + uuid;
- if (StringUtils.isNotBlank(prefix)) {
- path = prefix + "/" + path;
- }
- return path + suffix;
- }
- @Override
- public abstract UploadResult upload(byte[] data, String path, String contentType);
- @Override
- public abstract void delete(String path);
- @Override
- public UploadResult upload(InputStream inputStream, String path, String contentType) {
- byte[] data = IoUtil.readBytes(inputStream);
- return this.upload(data, path, contentType);
- }
- @Override
- public abstract UploadResult uploadSuffix(byte[] data, String suffix, String contentType);
- @Override
- public abstract UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType);
- public abstract String getEndpointLink();
- }
|