ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

七牛OSS图床使用

2022-09-12 16:30:46  阅读:209  来源: 互联网

标签:String 上传 OSS qiniu 七牛 图床 7.4 import com


项目中用到了图片服务器 这次选择的是七牛 每个月10G免费流量 还挺好用 记录一下怎么上传文件的

申请七牛对象存储

最后是这个样

上传图片

直接在网站按步骤上传就可以 然后点击外链就能用了

那么在Java中怎么上传和使用呢

1.引入jar包

在pom.xml中引入jar包,使用Maven,jar包版本在7.4.0~7.4.99之间的,比如:7.4.0取不到就区7.4.1依次往后

<!--七牛上传图片-->
<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>[7.4.0, 7.4.99]</version>
</dependency>

2.添加配置文件

在application.yml配置

# 七牛云 配置
qiniuyun:
  #你的accessKey
  accessKey: qBWiwDjwcgyBl***********
  #你的secretKey
  secretKey: 0o1unTBffzLm************
  #你的空间名
  bucket: dandelion-pgy
  #刚刚绑定的域名
  domain: http://rhwamrwoo.hb-bkt.clouddn.com/

密钥在这里找

3.创建上传文件的工具类

放在Utils包下即可

import java.io.InputStream;
import java.util.UUID;
import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import com.qiniu.storage.Configuration;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * @description: 七牛云上传图片
 **/
@Component
@PropertySource(value = "classpath:application.yml")
@ConfigurationProperties(prefix = "qiniuyun")
public class QiniuUtil {

    // 设置需要操作的账号的AK和SK
    @Value("${accessKey}")
    private String accessKey;
    @Value("${secretKey}")
    private String secretKey;
    // 要上传的空间
    @Value("${bucket}")
    private String bucket;
    //外链地址
    @Value("${domain}")
    private String domain;

    /**
     * 上传文件并且返回文件地址
     *
     * @param inputStream 文件
     */
    public String setUploadManager(InputStream inputStream) {
        //设置密钥、文件连接、文件名等等属性
        //构造一个带指定 Region 对象的配置类
        Configuration cfg = new Configuration(Region.huabei());  //服务器选的华北  所以是huabei()
        //...其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        //设置连接地址
        Auth auth = Auth.create(accessKey, secretKey);
        String prefix = "";
        int Guid = 100;
        try {
            String s = auth.uploadToken(bucket);
            //生成文件名
            String s1 = UUID.randomUUID().toString().replaceAll("-","");  //去掉uuid中的 -
            //实现文件上传
            Response response = uploadManager.put(inputStream, s1, s, null, null);
            //解析上传成功结果
            DefaultPutRet defaultPutRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
            //返回文件外链地址
            return domain + defaultPutRet.key;
        } catch (QiniuException e) {
            e.printStackTrace();
            return null;
        }
    }
}

4.Service层代码

public String uploadHeadImg(Long userId, MultipartFile file) {
    //文件名
    try {
        String path = qiniuUtil.setUploadManager(file.getInputStream());
        if (path == null) {
            throw new Exception("输入的字符不能为空!");
        }
        System.out.println(path);
        /*
        * 这段代码可根据业务逻辑修改
        */
        DanUserinfo userinfo = danUserinfoMapper.selectDanUserinfoById(userId);
        userinfo.setHeadImgUrl(path);
        danUserinfoMapper.updateDanUserinfo(userinfo);
        return path;
    } catch (IOException e) {
        e.printStackTrace();
        return "文件上传失败";
    } catch (Exception e) {
        e.printStackTrace();
        return "文件上传失败";
    }

其他的就根据自己的业务需求修改即可

参考 https://blog.csdn.net/m0_51079637/article/details/121018951

标签:String,上传,OSS,qiniu,七牛,图床,7.4,import,com
来源: https://www.cnblogs.com/Cloong/p/16686496.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有