七牛云之图片上传

七牛云之图片上传

本文介绍后端如何将图片上传到七牛云

如有需要,可以参考

如有帮助,不忘 点赞 ❥

预热准备

1)首先打开七牛云的官网 七牛云

2)注册一个人账号(新用户有优惠,具体可以查看官网通讯)

3)进入个人控制台,打开【对象存储】->【空间管理】,然后我们新建一个空间(注意:这时需要实名认证,很快会审核通过)

4)点进去,可以看到文件管理,这时我们就可以上传文件之类的

正文

使用maven 工程,可直接引入pom依赖,否之需下载对应sdk maven仓库

1)在 pom.xml 里添加以下依赖

com.qiniu

qiniu-java-sdk

7.1.1

2)七牛云的上传工具类

com.squareup.okhttp3

okhttp

4.2.2

/**

* 七牛云上传文件工具类

*/

public class QiniuCloudUtil {

// 设置需要操作的账号的AK和SK (AK和SK均在七牛云中获得,以下会说明)

private static final String ACCESS_KEY = "ACCESS_KEY";

private static final String SECRET_KEY = "SECRET_KEY";

// 要上传的空间 (刚刚新建空间的名称)

private static final String bucketname = "bucketname";

// 密钥

private static final Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

//新建空间时,七牛云分配出的域名 (自己可在万网购买域名解析后,绑定到加速域名)

private static final String DOMAIN = "q5jhgxz4q.bkt.clouddn.com";

public static String getUpToken() {

return auth.uploadToken(bucketname, null, 3600, new StringMap().put("insertOnly", 1));

}

//base64方式上传

public static String put64image(byte[] base64, String key) throws Exception {

String file64 = Base64.encodeToString(base64, 0);

Integer len = base64.length;

//华北空间使用 upload-z1.qiniu.com,华南空间使用 upload-z2.qiniu.com,北美空间使用 upload-na0.qiniu.com

String url = "http://upload-z2.qiniu.com/putb64/" + len + "/key/" + UrlSafeBase64.encodeToString(key);

RequestBody rb = RequestBody.create(null, file64);

Request request = new Request.Builder()

.url(url)

.addHeader("Content-Type", "application/octet-stream")

.addHeader("Authorization", "UpToken " + getUpToken())

.post(rb).build();

OkHttpClient client = new OkHttpClient();

okhttp3.Response response = client.newCall(request).execute();

System.out.println(response);

//返回图片地址 https://q5jhgxz4q.bkt.clouddn.com/812bbd78-62d3-44bc-836c-9ee27ba4866a

//用此地址可在网页中访问到上传的图片

return DOMAIN + key;

}

/**

* @param key 图片的文件名

* @Explain 删除空间中的图片

*/

public static void delete(String key) {

BucketManager bucketManager = new BucketManager(auth);

try {

bucketManager.delete(bucketname, key);

} catch (Exception e) {

e.printStackTrace();

}

}

}

3)controller:

@ResponseBody

@RequestMapping(value = "/uploadImg", method = RequestMethod.POST)

public Object uploadImg(@RequestParam MultipartFile file) {

if (file.isEmpty()) {

return Result.error("文件不能为空");

}

try {

byte[] bytes = file.getBytes();

String imageName = UUID.randomUUID().toString();

try {

//使用base64方式上传到七牛云

String url = QiniuCloudUtil.put64image(bytes, imageName);

log.info("上传地址为----:" + url);

} catch (Exception e) {

e.printStackTrace();

}

} catch (IOException e) {

return Result.error("上传图片异常");

}

return Result.success();

}

以上测试通过便能顺利上传到七牛云空间中,不过默认访问为http协议的地址。如果要使用https协议(如小程序之类的),需要购买证书,解析域名绑定到七牛云,下面说明一下步骤。

步骤一

打开 七牛云SSL ,选择TrustAsia。

如果已有证书的可自行上传

步骤二

还需有一个域名,如若没有可登录 万网 购买域名(便宜的也只需几块钱/年)。

购买好域名我们需进行备案,因为七牛云中绑定加速域名的主域名需要备案。备案时间不等,一般来说十五个工作日可以下来。

以上步骤做好后,我们回到 七牛云的对象存储中 , 点击绑定加速域名

按步骤填写下去

这边就会出现自己的域名,这时你们的状态应为【等待CNAME】

域名是万网的,便去万网控制台解析

过一会刷新七牛云后台

可以看到成功字样,如果没有成功,稍等一会儿,或者检查一下有没有解析记录有误。

点击切换旧版

可以看到有个镜像存储,填上自己的域名

在内容管理中上传图片

此时图片的外链地址便是 https 协议了。

💫 相关推荐

R8左轮手枪(纪念品) | 渐变琥珀 (崭新出厂)
365双试投注是什么

R8左轮手枪(纪念品) | 渐变琥珀 (崭新出厂)

📅 01-07 👀 2413
《命运2》年6,第20赛季 无名午夜介绍及获取方法
365双试投注是什么

《命运2》年6,第20赛季 无名午夜介绍及获取方法

📅 08-15 👀 4497
大鳄龟丨身赋洪荒之力的钓鱼大师
365bet官网是什么

大鳄龟丨身赋洪荒之力的钓鱼大师

📅 07-08 👀 9436
什么然屹立的成语
365bet官网是什么

什么然屹立的成语

📅 10-26 👀 4614
卡瘦棒减肥产品怎么样
约彩365app下载

卡瘦棒减肥产品怎么样

📅 06-29 👀 6821
网吧管理软件有哪些推荐?网吧专用管理软件清单
《命运2》年6,第20赛季 无名午夜介绍及获取方法
365双试投注是什么

《命运2》年6,第20赛季 无名午夜介绍及获取方法

📅 08-15 👀 4497
腾讯天天系列手游大全-天天系列腾讯手游有哪些?
365bet官网是什么

腾讯天天系列手游大全-天天系列腾讯手游有哪些?

📅 09-07 👀 7777
fnd.io –  全球 App Store 和 iTunes 搜索工具
约彩365app下载

fnd.io – 全球 App Store 和 iTunes 搜索工具

📅 07-23 👀 1066