Java进阶学习:将文件上传到七牛云中

通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去

JavaSDK:https://developer.qiniu.com/kodo/sdk/1239/java#server-upload

官方SDK:https://developer.qiniu.com/sdk#official-sdk

创建空间及绑定域名

创建存储空间

  这一步操作没有什么好说的,我们存储区域可以根据服务器的高频访问地域进行设置

  

绑定域名

  创建好存储空间后就会默认给你一个测试域名来使得你能通过外链访问你空间的内容。但是七牛云存储器作为我们应用的一部分,它的访问域名也应该遵循我们的域名规范,此时我们可以通过绑定域名来实现这样的效果,比如可以通过cloud.mrsaber.cn来访问七牛云存储中的文件。

  点击图示位置中的自定义域名:

  

  填写域名的相关信息及设置(域名必填,其他默认即可):

  

  填写完以后将七牛云将会给你一个CNAME:

  

  最后一步是,在你的域名厂商中添加一条二级解析域名,指向这个CNAME:

  

  这样回域名管理中刷新一下,直到通知你域名创建成功以后即可。

  

Java测试上传文件

创建一个Java应用

  由于要安装七牛云的SDK,我们将我们的Java应用转换为Maven应用。

  项目上右键 Add Framework Support  然后选中Maven,点击OK

  

添加第三方类库

<dependencies>
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.11</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>
</dependencies>

编写测试代码

import com.google.gson.Gson;
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.storage.model.DefaultPutRet;
import com.qiniu.util.Auth; import java.util.Scanner; public class Main { public static void main(String[] args) {
/*
* Configuration 表示带指定Zone对象的配置类
* 其中Zone 2 表示华南地区
* */
Configuration cfg = new Configuration(Zone.zone2());
UploadManager uploadManager = new UploadManager(cfg);
String accessKey = "XXXXX";
String secretKey ="YYYYY";
String bucket= "你当时建的存储空间的名称";
Scanner scanner = new Scanner(System.in);
String filePath = scanner.nextLine();
//Key 表示文件上传到服务器中的名称,为空的话默认为文件Hash值
String key = filePath.substring(filePath.lastIndexOf("/")+1);
Auth auth = Auth.create(accessKey,secretKey);
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(filePath,key,upToken);
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(),DefaultPutRet.class);
System.out.println(putRet.hash);
System.out.println(putRet.key);
} catch (QiniuException e) {
e.printStackTrace();
}
}
}

其中秘钥的位置在这里

  

Java进阶学习:将文件上传到七牛云中的更多相关文章

  1. MVC&WebForm对照学习:文件上传(以图片为例)

    原文  http://www.tuicool.com/articles/myM7fe 主题 HTMLMVC模式Asp.net 博客园::首页::  ::  ::  ::管理 5 Posts :: 0 ...

  2. JAVA Web 之 struts2文件上传下载演示(二)(转)

    JAVA Web 之 struts2文件上传下载演示(二) 一.文件上传演示 详细查看本人的另一篇博客 http://titanseason.iteye.com/blog/1489397 二.文件下载 ...

  3. JAVA Web 之 struts2文件上传下载演示(一)(转)

    JAVA Web 之 struts2文件上传下载演示(一) 一.文件上传演示 1.需要的jar包 大多数的jar包都是struts里面的,大家把jar包直接复制到WebContent/WEB-INF/ ...

  4. Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题 swfUpload多文件上传

    Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题(转) 我们都知道普通的文件上传是通过表单进行文件上传的,还不能达到异步上传的目的.通过使用某些技术手段,比如jqu ...

  5. .Net Core实现将文件上传到七牛云存储

    功能:将图片上传到七牛云存储 准备工作 注册七牛账号,提交实名认证(基本上1天内内审核通过) 登录七牛后台->对象存储->新建空间 (基本概念:https://developer.qini ...

  6. Tp3.1 文件上传到七牛云

    TP3.1 中不支持Composer 就无法用composer 安装 下载历史的SDK https://github.com/qiniu/php-sdk/releases/tag/v7.0.8 下载下 ...

  7. tp5 webupload文件上传至七牛云

    1:composer安装: composer require qiniu/php-sdk 2: 配置使用: 在tp5.1的配置文件app.php中配置七牛云的参数 'qiniu' => [ 'a ...

  8. laravel7文件上传至七牛云并保存在本地图片

    HTML代码: <form class="layui-form" action="{{route('doctor.store')}}" method=&q ...

  9. 微信小程序文件上传至七牛云(laravel7)

    1 wxml: <view> <form bindsubmit="dopost"> <view> <label>真实姓名</l ...

随机推荐

  1. 606. Construct String from Binary Tree 【easy】

    606. Construct String from Binary Tree [easy] You need to construct a string consists of parenthesis ...

  2. MFC 控件RadioButton和CheckBox区别

    1. 单个RadioButton在选中后,通过点击无法变为未选中 单个CheckBox在选中后,通过点击可以变为未选中 2. 一组RadioButton,只能同时选中一个 一组CheckBox,能同时 ...

  3. linux fedora 14(内核2.6.35.6) PF_RING+libpcap 极速捕获千兆网数据包,不丢包

    前面讲到了libpcap 捕获数据包,尤其在千兆网的条件下,大量的丢包,网上搜索好久,大概都是PF_PACKET +MMAP,NAPI,PF_RING之类的方法,我对PF_RING+libpcap进行 ...

  4. EOJ Problem #3249 状态压缩+循环周期+反向递推

    限量供应 Time limit per test: 4.0 seconds Time limit all tests: 4.0 seconds Memory limit: 256 megabytes ...

  5. nefu 118 n!后面有多少个0 算数基本定理,素数分解

    n!后面有多少个0 Time Limit 1000ms Memory Limit 65536K description 从输入中读取一个数n,求出n! 中末尾0的个数. input 输入有若干行.第一 ...

  6. Spring MVC生成XML

    以下示例演示如何使用Spring Web MVC框架生成XML.首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建一个名 ...

  7. centos7 更换yum源为阿里云

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos ...

  8. 视觉SLAM之词袋(bag of words) 模型与K-means聚类算法浅析(2)

    聚类概念: 聚类:简单地说就是把相似的东西分到一组.同 Classification (分类)不同,分类应属于监督学习.而在聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到 ...

  9. matlab中双站异面直线法定位目标

    calc.m %% 参数信息初始化 [x1,y1,z1]=deal(); [x2,y2,z2]=deal(,,); m1=/; n1=/; p1=^(/)/; m2=; n2=-^(/)/; p2=^ ...

  10. 冒泡排序-python

    题目: 如果一个list是一组打乱的数字 list1=[3,2,1,9,10,78,6] 如何用python将这组打乱的数字进行冒泡排序? 题解: def sort(nums): for i in r ...