疯狂的狮子li
2021-07-28 eb2be90e74adfa06ee251f80c08243d0301ce467
ruoyi-oss/src/main/java/com/ruoyi/oss/service/abstractd/AbstractCloudStorageService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
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();
}