前言
七牛云注册免费赠送这么多可用的套餐白嫖党怎能错过???
Show Time
进入控制台找到对象存储
根据图片来一步步走即可
创建完毕后会弹出一个是否绑定域名?
我们先整不绑定域名的(测试域名30天过期),后面再说绑定的
随便上传个文件看看能不能访问
进入 空间设置 把私有改为公有访问就可以进行访问了
测试地址: http://r9d51yx78.hd-bkt.clouddn.com/TERD5659[1]-6fff19b5e08d4d19a2b1b2d9ceffe8ea.jpeg
我们进行打开自己的密钥保存一份
代码操作文件上传
<!--引入七牛云的依赖--> <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>[7.7.0, 7.7.99]</version> </dependency>
七牛云文件上传配置文件
import com.qiniu.storage.Region; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * @program: yangbuyi_video * @ClassName: qiniuOssConstant * @author: Yang buyi * @desc: |七牛云文件上传配置 **/ @Data @Component @ConfigurationProperties(prefix = "qiniu") public class QiniuOssProperties { //声明机房的区域 默认 华东 private Region region = Region.huadong(); //AK private String accessKey = "ak"; //SK private String secretKey = "sk"; //空间名称 private String bucket = "前面设置的空间名称"; //请求地址 前面创建免费送的测试域名 private String url = "http://r9d51yx78.hd-bkt.clouddn.com/"; }
创建测试类
// Create By Yang Shuai,Date 2022/3/27:02:02 import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSON; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth; import org.junit.Test; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.*; public class QinUtil { QiniuOssProperties qiniuOssProperties = new QiniuOssProperties(); @Test public void t1() { File file = new File("/Users/yangbuyi/Documents/图片/Surface Stusio default wallpaper.png"); //构造一个带指定Region对象的配置类 Configuration cfg = new Configuration(qiniuOssProperties.getRegion()); //创建文件上传的管理器 UploadManager uploadManager = new UploadManager(cfg); //默认不指定key的情况下,以文件内容的hash值作为文件名 String fileName = file.getName(); //统一文件到日文件夹 String key = DateUtil.today() + "/" + IdUtil.simpleUUID() + "-" + "yangbuyiya"; try { byte[] uploadBytes = File2byte(file); // 获取文件流 InputStream input = new ByteArrayInputStream(uploadBytes); //创建一个认证的对象 Auth auth = Auth.create(qiniuOssProperties.getAccessKey(), qiniuOssProperties.getSecretKey()); //获取token String upToken = auth.uploadToken(qiniuOssProperties.getBucket()); // 需传递token进行文件上传 Response response = uploadManager.put(input, key, upToken, null, null); //解析上传成功的结果 DefaultPutRet defaultPutRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class); // 返回路径 // qiniuOssProperties.getUrl() + defaultPutRet.hash defaultPutRet.key = qiniuOssProperties.getUrl() + defaultPutRet.key; defaultPutRet.hash = qiniuOssProperties.getUrl() + defaultPutRet.hash; System.out.println(JSON.toJSONString(defaultPutRet)); } catch (Exception ex) { ex.printStackTrace(); } } public static byte[] File2byte(File tradeFile){ byte[] buffer = null; try { FileInputStream fis = new FileInputStream(tradeFile); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] b = new byte[1024]; int n; while ((n = fis.read(b)) != -1) { bos.write(b, 0, n); } fis.close(); bos.close(); buffer = bos.toByteArray(); }catch (FileNotFoundException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } return buffer; } }
文件上传成功
使用key来进行访问
{ "hash":"http://r9d51yx78.hd-bkt.clouddn.com/llSfj5c2gQTtjMH8wpEZIV8pHV6P", "key":"http://r9d51yx78.hd-bkt.clouddn.com/2022-03-27/f63231bef87f44e382f55027690e21ba-yangbuyiya" }