Java后台如何上传图片到七牛云

  |   0 评论   |   0 浏览

一:为啥用七牛云

看某马的培训视频,要用到 fastdfs,配置起来挺麻烦,于是决定自己弄一个图片服务器,因为之前做安卓项目的时候用过七牛云的 SDK 感觉挺 ok

,于是改用七牛云。使用七牛云的对象存储,需要一个备案的域名,用来绑定存储空间,如果只是短时间用,七牛云倒是会提供一个 30 天的临时

域名。以自己的域名加一个前缀,比如 media.XXX.cn 之后会获得一个 CNAME,然后在域名厂商的控制台添加解析,比如我是在阿里云买的:

1415069202001102310352601705704930.png

这样就能使用了,访问图片就是 medis.XXX.cn/example.jpg

二:后台传送模块的编写

添加七牛云依赖到 pom(建议使用官方文档推荐的版本)

	<dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>[7.2.0, 7.2.99]</version>
        </dependency>

由于 Spring 接收文件的类型是 MultipartFile,需要先转成 File 文件。

    //File代入参数是临时文件的目录,在磁盘新建一个空文件就行,否则好像会报异常。
    File file = new File("C:\\test");
    //uploadFile是MultipartFile对象
    uploadFile.transferTo(file);
    //得到图片的url
    String url = QiniuCloudUtil.upload(file, preName);
    //生成的文件会存在本地,我这里选择删除它
    file.delete();

工具如下,不复杂:

import java.io.File;
import java.io.IOException;
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.util.Auth;

import org.springframework.util.StringUtils;

/**
 * @author yintianhao
 * @createTime 07 21:07
 * @description 七牛云工具
 */
public class QiniuCloudUtil {

    // 设置需要操作的账号的AK和SK
    private static final String ACCESS_KEY = "*******";
    private static final String SECRET_KEY = "*******";

    // 要上传的空间名
    private static final String bucketname = "****";

    // 密钥
    private static final Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

    //上传
    public static String upload(File file, String key) throws IOException{
        // 创建上传对象,Zone*代表地区
        Configuration configuration = new Configuration(Zone.zone2());
        UploadManager uploadManager = new UploadManager(configuration);
        try {
            // 调用put方法上传
            String token = auth.uploadToken(bucketname);
            if(StringUtils.isEmpty(token)) {
                System.out.println("未获取到token,请重试!");
                return null;
            }
            print("File name = "+file.getName());
            Response res = uploadManager.put(file,key,token);
            // 打印返回的信息
            if (res.isOK()){
                return key;
            }
        }catch (QiniuException e) {
            Response r = e.response;
            // 请求失败时打印的异常的信息
            e.printStackTrace();
            System.out.println("error "+r.toString());
            try {
                // 响应的文本信息
                System.out.println(r.bodyString());
            } catch (QiniuException e1) {
                System.out.println("error "+e1.error());
            }
        }
        return null;
    }
}

邀请注册:

你也赶紧注册一个试试吧:

https://portal.qiniu.com/signup?code=1h4qfxyrak5zm




标题:Java后台如何上传图片到七牛云
作者:淼淼之森
地址:https://mmzsblog.cn/articles/2020/06/29/1593396711960.html

个人微信公众号 ↓↓↓                 

微信搜一搜 Java 学习之道

评论

发表评论