SpringBoot整合七牛云qiniu

 一、参考项

七牛云 COS(官网): 对象存储 Kodo_云存储_海量安全高可靠云存储_oss - 七牛云

qiniu SDK for Java(官网): Java SDK_SDK 下载_对象存储 - 七牛开发者中心

二、引入Pom文件

<!-- https://mvnrepository.com/artifact/com.qiniu/qiniu-java-sdk -->
<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>7.1.0</version>
</dependency>

三、定义抽象类

public abstract class BaseObjectStorage {

    /**
     * 上传文件
     *
     * @param pathAndName
     * @param file
     */
    public abstract void upload(String pathAndName, File file);

    /**
     * 授权
     *
     * @param pathAndName
     * @param time
     * @return
     */
    public abstract String authorize(String pathAndName, long time);

    /**
     * 授权(路径全)
     *
     * @param pathAndName
     * @param time
     * @return
     */
    public abstract String authorizeAllName(String pathAndName, long time);

    /**
     * 临时上传文件授权
     *
     * @param dir
     * @return
     */
    public abstract Map<String, Object> tokens(String dir);

    /**
     * 删除文件
     *
     * @param pathAndName
     */
    public abstract void deleteFile(String pathAndName);

    public String getFilePathPrefix();

}

四、COS实现类

package cn.xhh.view.core.objectstorage;

import java.io.File;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.collect.Maps;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;

public class QiNiuObjectStorage implements BaseObjectStorage {

  private static final Logger logger = LoggerFactory.getLogger(QiNiuObjectStorage.class);

  private Auth auth;
  private static UploadManager uploadManager = new UploadManager();

  private String accessKeyId;
  private String accessKeySecret;
  private String bucketName;

  public QiNiuObjectStorage(ObjectStorageInfo objectStorageInfo) {
    this.accessKeyId = objectStorageInfo.getAccessKeyId();
    this.accessKeySecret = objectStorageInfo.getAccessKeySecret();
    this.bucketName = objectStorageInfo.getBucketName();
    auth = Auth.create(accessKeyId, accessKeySecret);
  }



  @Override
  public void upload(String pathAndName, File file) {
    try {
      Response response = uploadManager.put(file.getAbsolutePath(), pathAndName,
          auth.uploadToken(bucketName, pathAndName));
      if (response.isOK()) {
        logger.info("{} 七牛上传成功", pathAndName);
      } else {
        logger.info("{} 七牛上传失败,详情{}", pathAndName, response.bodyString());
      }
    } catch (QiniuException e) {
      logger.error("七牛上传失败", e);
    }
  }

  @Override
  public String authorize(String pathAndName, long time) {
    return "";
  }

  @Override
  public String authorizeAllName(String pathAndName, long time) {
    return "";
  }

  @Override
  public Map<String, Object> tokens(String dir) {
    Map<String, Object> result = Maps.newHashMap();
    return result;
  }

  @Override
  public void deleteFile(String pathAndName) {

  }

  @Override
  public String getFilePathPrefix() {
    return bucketName+"/";
  }
}

五、application配置文件

objectstorage.type: qiniu
qiniu:
    access-key-id: iWw70jiXXXqrGN6m44C
    access-key-secret: Dgq65WXXXX2R3clrwXcXXXWdHPQ
    bucket-name: data


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值