其他分享
首页 > 其他分享> > springboot+七牛云 把图片上传到七牛云,将本地图片变为网络图片,跟图床一样

springboot+七牛云 把图片上传到七牛云,将本地图片变为网络图片,跟图床一样

作者:互联网

1.注册七牛云账号

https://portal.qiniu.com/homehttps://portal.qiniu.com/home

1.2.然后开通存储,你实名认证后就会有个免费的

1.3.新建空间

 1.4.选择公有的试试水

 1.5查看你的ak和sk

点击右上角

点击密匙管理

这就是你的ak和sk,代码文件上传中要用。

 

 2.代码

2.1导入七牛坐标 

<!--        七牛云-->
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>[7.7.0, 7.7.99]</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.14.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>happy-dns-java</artifactId>
            <version>0.1.6</version>
            <scope>test</scope>
        </dependency>

2.2.编写控制器层

@Api(value = "发布类",description = "文件上传",tags = "发布类")
@Controller
public class FileUploadController {
    @Autowired Result result;
    @RequestMapping("/publish")
//    @CachePut(value = "asd")
    @ApiOperation("发布功能")
    @ResponseBody
   public Result publish(@RequestParam("title") String title,@RequestParam("file") MultipartFile[] files){
        for (MultipartFile mf:files){
            System.out.println(mf.getOriginalFilename());
        }
       // System.out.println(file.getOriginalFilename());
        System.out.println(title);
        //构造一个带指定 Region 对象的配置类
        Configuration cfg = new Configuration(Region.region2());
//...其他参数参考类注释

        UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
        String accessKey = "你的ak值";//ak值
        String secretKey = "你的sk值";//sk值
        String bucket = "你的空间名字";//刚命名的
//如果是Windows情况下,格式是 D:\\qiniu\\test.png
        String localFilePath = "F:\\桌面\\billboard.jpg"; //文件上传路径
//默认不指定key的情况下,以文件内容的hash值作为文件名
        String key = "test";//上传文件的名字

        Auth auth = Auth.create(accessKey, secretKey);
        String upToken = auth.uploadToken(bucket);

        try {
            Response response = uploadManager.put(localFilePath, key, upToken);
            //解析上传成功的结果
            DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
            System.out.println(putRet.key);
            System.out.println(putRet.hash);
        } catch (QiniuException ex) {
            Response r = ex.response;
            System.err.println(r.toString());
            try {
                System.err.println(r.bodyString());
            } catch (QiniuException ex2) {
                //ignore
            }
        }

        return result;
    }
}

2.3测试

 七牛云后台

可以看到test图片已经上传了,不过不绑定域名的话,七牛云30天后会给你清除掉。

文件上传你只要把格式变为http://域名//文件名 存到数据库中,展现的时候直接取数据库就行,ok日常记录一下。

标签:七牛云,String,com,qiniu,System,println,图片,上传,springboot
来源: https://blog.csdn.net/qq_55823436/article/details/122731040