美文网首页
guns 与 七牛云 同步(后端 一)

guns 与 七牛云 同步(后端 一)

作者: 阳光也学会了妩媚 | 来源:发表于2020-02-04 18:33 被阅读0次

1、注册七牛云账号并新建对象存储空间
会得到三个东西
(1)、空间名称及访问地址


Snipaste_2020-02-04_18-26-48.png

(2) 、AccessKey
(3)、SecretKey


Snipaste_2020-02-04_18-26-29.png

2、后端编写
分4个步骤
(1)依赖引入pom

 <!--七牛云-->
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>[6.1.7, 6.999]</version>
        </dependency>

(2)创建工具类

package com.stylefeng.guns.rest.modular.sunyuechao.utils;


import com.qiniu.api.auth.digest.Mac;
import com.qiniu.api.config.Config;
import com.qiniu.api.io.IoApi;
import com.qiniu.api.io.PutExtra;
import com.qiniu.api.io.PutRet;
import com.qiniu.api.rs.PutPolicy;

import java.io.InputStream;

/**
 * @author: sunyuechao
 * @date: 2020/2/3 0003 @time 20:13
 * @Explain:
 */
public class QiniuUtil {
  //访问url
    private static final String BASE_URL="http://xxxxxx.xxxx.clouddn.com/";

    private static final String ACCESS_KEY="b-sH7xxxxxxxxxxxxxxxxu7YtUmE";
    private static final String SECRET_KEY="RbdUQwuxxxxxxxxxxxxxxxG7L5aVwBUeeYI";
    private static final String Bucket_Name="sunyuechao";
    public static String UploadFile (String fileName, InputStream inputStream) throws Exception {
        Config.ACCESS_KEY = ACCESS_KEY;
        Config.SECRET_KEY = SECRET_KEY;
        Mac mac = new Mac(Config.ACCESS_KEY, Config.SECRET_KEY);
        // 请确保该bucket已经存在
        String bucketName = Bucket_Name;
        PutPolicy putPolicy = new PutPolicy(bucketName);
        String uptoken = putPolicy.token(mac);
        PutExtra extra = new PutExtra();
        //PutRet ret = IoApi.putFile(uptoken, fileName, filePath, extra);
       //用inputStream  不用从文件直接读取
        PutRet ret = IoApi.Put(uptoken, fileName, inputStream, extra);


        System.out.println(ret.toString());
       //做了一个返回值
        return BASE_URL+fileName;
    }
}

(3)引用(UserMgrController---upload)

    /**
     * 上传图片
     */
    @RequestMapping(method = RequestMethod.POST, path = "/upload")
    @ResponseBody
    public String upload(@RequestPart("file") MultipartFile picture) {

        String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
        try {


            String fileSavePath = gunsProperties.getFileUploadPath();
            //上传ftp sunyuechao start
            InputStream inputStream = picture.getInputStream();
          //自己搭建的ftp服务器并与http服务器共享  实现类似七牛云的本地化
            Boolean flag = FtpUtil.uploadFile(pictureName,inputStream);
            if (flag == true) {
      
                System.out.println("FTP上传文件成功!<<"+"http://192.168.1.109/images/"+pictureName+">>");
            }else {
                System.out.println("FTP上传文件失败!");
            }
       //调用七牛云  好像用try多余
            try{
                QiniuUtil.UploadFile(pictureName,inputStream);
                System.out.println("七牛云上传成功");
            }catch (Exception e){
                System.out.println("七牛云上传失败");

            }


            //sunyuechao end

            picture.transferTo(new File(fileSavePath + pictureName));
        } catch (Exception e) {
            throw new GunsException(BizExceptionEnum.UPLOAD_ERROR);
        }
        return pictureName;
    }

(4)页面引用
html 调用

<#avatar id="avatar" name="头像" underline="true"/>

info.js 调用

$(function() {
    // 初始化头像上传
    var avatarUp = new $WebUpload("avatar");
    avatarUp.setUploadBarId("progressBar");
    avatarUp.init();
});

后端至此大功告成!

相关文章

网友评论

      本文标题:guns 与 七牛云 同步(后端 一)

      本文链接:https://www.haomeiwen.com/subject/dbcdxhtx.html