ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java中使用七牛云流程

2021-12-11 17:58:36  阅读:215  来源: 互联网

标签:java String 流程 public return import 七牛云 com Region


文章目录

登录七牛云

新建空间
在这里插入图片描述
在这里插入图片描述
这里空间权限设置为公开,空间名称记好
在这里插入图片描述
这里域名记好
在这里插入图片描述
密钥记好

pom文件导入七牛云的maven依赖

  <!--七牛云-->
            <dependency>
                <groupId>com.qiniu</groupId>
                <artifactId>qiniu-java-sdk</artifactId>
                <version>7.2.6</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
                <version>3.3.1</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.6.2</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>com.qiniu</groupId>
                <artifactId>happy-dns-java</artifactId>
                <version>0.1.4</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>

FileUtil工具类

主要是为了过滤上传的文件

public class FileUtil {

    // 图片允许的后缀扩展名
    public static String[] IMAGE_FILE_EXTD = new String[] { "png", "bmp", "jpg", "jpeg","pdf" };

    public static boolean isFileAllowed(String fileName) {
        for (String ext : IMAGE_FILE_EXTD) {
            if (ext.equals(fileName)) {
                return true;
            }
        }
        return false;
    }
}

QiniuService类

package com.zy.service;

import com.alibaba.fastjson.JSONObject;
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 com.zy.utils.FileUtil;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

@Service
public class QiniuService {

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

    // 设置好账号的ACCESS_KEY和SECRET_KEY
    String ACCESS_KEY = "GP970";
    String SECRET_KEY = "nDoZnehWTWfVWs1tfI02H3CCOmhNBqMs";
    // 要上传的空间
    String bucketname = "lzchaohuiwan";

    // 密钥配置
    Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
    // 构造一个带指定Zone对象的配置类,不同的七云牛存储区域调用不同的zone
//    华东	Region.region0(), Region.huadong()
//    华北	Region.region1(), Region.huabei()
//    华南	Region.region2(), Region.huanan()
//    北美	Region.regionNa0(), Region.beimei()
//    东南亚	Region.regionAs0(), Region.xinjiapo()
    Configuration cfg = new Configuration(Zone.zone2());
    // ...其他参数参考类注释
    UploadManager uploadManager = new UploadManager(cfg);

    // 测试域名,只有30天有效期
    private static String QINIU_IMAGE_DOMAIN = "r3sejy2a8bkt.clouddn.com/";

    // 简单上传,使用默认策略,只需要设置上传的空间名就可以了
    public String getUpToken() {
        return auth.uploadToken(bucketname);
    }

    public String saveImage(MultipartFile file) throws IOException {
        try {
            int dotPos = file.getOriginalFilename().lastIndexOf(".");
            if (dotPos < 0) {
                return null;
            }
            String fileExt = file.getOriginalFilename().substring(dotPos + 1).toLowerCase();
            // 判断是否是合法的文件后缀
//            if (!FileUtil.isFileAllowed(fileExt)) {return null;}

           String fileName = UUID.randomUUID().toString().replaceAll("-", "") + "." + fileExt;
            // 调用put方法上传
            Response res = uploadManager.put(file.getBytes(), fileName, getUpToken());
            // 打印返回的信息
            if (res.isOK() && res.isJson()) {
                // 返回这张存储照片的地址
                return QINIU_IMAGE_DOMAIN + JSONObject.parseObject(res.bodyString()).get("key");
            } else {
//                logger.error("七牛异常:" + res.bodyString());
                return null;
            }
        } catch (QiniuException e) {
            // 请求失败时打印的异常的信息
//            logger.error("七牛异常:" + e.getMessage());
            return null;
        }
    }
}


TestController类

package com.zy.controller;


import com.alibaba.fastjson.JSONObject;
import com.zy.service.QiniuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;


@Controller
public class TestController {

    @Autowired
    private QiniuService qiniuService;

    @RequestMapping(value = "/uploadMulit", method = RequestMethod.POST)
    @ResponseBody
    public String uploadImage(@RequestParam("data") MultipartFile data, HttpServletRequest request) {

        String name = request.getParameter("name");
        System.out.println("name:"+name);
        if(data.isEmpty()) {
            return "error";
        }

        try {
            String QINIU_IMAGE_DOMAIN="r3sejy2a8kt.clouddn.com/";
            String fileUrl=qiniuService.saveImage(data);
//            fileUrl=QINIU_IMAGE_DOMAIN+fileUrl;
            return fileUrl;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "fail";
    }

    @RequestMapping("/test")
    public String test(){
        return "test";
    }
    @RequestMapping("/file")
    public String file(){
        return "file";
    }

}


标签:java,String,流程,public,return,import,七牛云,com,Region
来源: https://blog.csdn.net/qq_43623447/article/details/121876894

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

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

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

ICode9版权所有