七牛云上传图片

七牛云上传图片实现

描述

运用 Java 代码实现从本地上传图片到七牛云,并通过七牛云提供的临时域名访问图片。

官网

https://www.qiniu.com

流程

  • 创建 Maven 项目。
  • pom 文件导入官网提供的依赖。
  • 注册七牛云,准备好存储空间,并查看密钥。
  • 从本地上传图片到七牛云。
  • 使用临时域名访问已上传的图片。

源码

链接:https://pan.baidu.com/s/1FhgtfdWbv7SRh-2HFhO06g 提取码:dj2i

前期准备

创建Maven项目

新建模块,如下图:

43_七牛云上传图片.png

选择 Maven,点击 Next,如下图:

44_七牛云上传图片.png

填入项目信息,创建项目,如下图:

45_七牛云上传图片.png

注册七牛云

访问七牛云官网,注册账号并实名认证(具体步骤此处省略),入口如下图:

46_七牛云上传图片.png

点击产品,选择对象存储,如下图:

47_七牛云上传图片.png

新建存储空间,如下图:

48_七牛云上传图片.png

创建存储空间成功后,如下图:

49_七牛云上传图片.png

选择用户菜单下的密钥管理,如下图:

50_七牛云上传图片.png

查看密钥(密钥后面需要用到),如下图:

51_七牛云上传图片.png

环境配置

访问七牛云主页选择 SDK&工具 下的官方 SDK,如下图:

52_七牛云上传图片.png

这里,我们选择 Java,如下图所示:

53_七牛云上传图片.png

查看官方提供的配置文件,如下图:

54_七牛云上传图片.png

配置项目 pom 文件:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.haicoder</groupId> <artifactId>qiniu_demo</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!--七牛云依赖--> <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>[7.2.0,7.2.99]</version> </dependency> <!--谷歌gson--> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> </dependency> </dependencies> </project>

代码实现

package net.haicoder.test; import com.google.gson.Gson; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; import com.qiniu.storage.Region; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth; public class UploadFile { public static void main(String[] args){ // 配置类 Configuration cfg = new Configuration(Region.region0()); UploadManager uploadManager = new UploadManager(cfg); // 上传凭证 String accessKey = "此处输入您的accessKey"; String secretKey = "此处输入您的secretKey"; // 空间名称 String bucket = "haicoder"; // 图片地址 String localFilePath = "d:/img/java.png"; // 图片上传后名称 String key = "java.png"; 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("嗨客网(www.haicoder.net)\n"); 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) { ex2.printStackTrace(); } } } }

执行上传代码前,需要确保本地路径存在图片,如下图:

55_七牛云上传图片.png

执行 UploadFile 类,运行结果如下:

56_七牛云上传图片.png

上传成功后,到七牛云复制图片外链,如下图:

57_七牛云上传图片.png

访问图片,如下图:

58_七牛云上传图片.png

以上案例实现了从本地上传图片到七牛云,并通过七牛云提供的临时域名访问图片。