package com.ruoyi.oss.service.abstractd;
|
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.ruoyi.oss.entity.UploadResult;
|
import com.ruoyi.oss.service.ICloudStorageService;
|
import org.springframework.beans.factory.InitializingBean;
|
|
import java.io.InputStream;
|
import java.util.Date;
|
|
/**
|
* 云存储(支持七牛、阿里云、腾讯云、minio)
|
*
|
* @author Lion Li
|
*/
|
public abstract class AbstractCloudStorageService implements ICloudStorageService, InitializingBean {
|
|
@Override
|
public abstract void createBucket();
|
|
@Override
|
public abstract String getServiceType();
|
|
@Override
|
public String getPath(String prefix, String suffix) {
|
// 生成uuid
|
String uuid = IdUtil.fastSimpleUUID();
|
// 文件路径
|
String path = DateUtil.format(new Date(), "yyyyMMdd") + "/" + uuid;
|
if (StrUtil.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);
|
|
@Override
|
public abstract void afterPropertiesSet() throws Exception;
|
|
@Override
|
public abstract String getEndpointLink();
|
}
|