SpingBoot配置七牛云存储

canace
2021-02-02 / 0 评论 / 323 阅读 / 正在检测是否收录...

1、七牛云存储相关依赖

<!--七牛云存储-->
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>7.2.28</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>

2、yml文件配置

#七牛云存储配置
qiniu:
 accessKey: SVc4nB8AQffickdBj4MoW-lxFX-P8ZzLmuEAcQhh
 secretKey: s8-4wL8RkOsCooBEcCJbPOZMuavhBL6HNgKW6vYV
 # 对象储存
 bucket: music-web # 空间名称
 path: https://file.canace.cn/ # 访问域名

3、七牛云Config类配置

import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.io.FileInputStream;

/**
 * 七牛云文件上传
 */

@Data
@Component
public class QiNiuYunConfig {

    @Value("${qiniu.accessKey}")
    private String accessKey;
    @Value("${qiniu.secretKey}")
    private String secretKey;
    @Value("${qiniu.bucket}")
    private String bucket;
    @Value("${qiniu.path}")
    private String path;


    public String uploadToQiNiu(FileInputStream file, String filename) {
        // 构造一个带指定Zone对象的配置类,注意后面的zone各个地区不一样的
        //zone2为华南地区
        Configuration cfg = new Configuration(Zone.zone2());
        // 其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        // 生成密钥
        Auth auth = Auth.create(accessKey, secretKey);
        try {
            String upToken = auth.uploadToken(bucket);
            try {
                Response response = uploadManager.put(file, filename, upToken, null, null);
                // 解析上传成功的结果
                DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);

                // 这个returnPath是获得到的外链地址
                String returnPath = getPath() +putRet.key;
                return returnPath;
            } catch (QiniuException ex) {
                Response r = ex.response;
                System.err.println(r.toString());
                try {
                    System.err.println(r.bodyString());
                } catch (QiniuException ex2) {
                    //ignore
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
}

4、文件上传Controller()

       //获取文件名
        String fileName = avatorFile.getOriginalFilename();
        FileInputStream inputStream = (FileInputStream) avatorFile.getInputStream();
        //为文件重命名:uuid+filename
        fileName = UUID.randomUUID()+ fileName;
        //上传后文件路径
        String storeAvatorPath = qiNiuYunConfig.uploadToQiNiu(inputStream, fileName);
        //System.out.println(storeAvatorPath);
        File dest = new File(fileName);
1

评论

博主关闭了所有页面的评论