java 上传文件到七牛云存储的demo

maven 

 

   引用 网上maven服务器 以及最新版的maven依赖

 

<repositories>
		<repository>
			<id>public</id>
			<!-- <url>http://192.168.2.115:8081/nexus/content/groups/public/</url> -->
			<url>https://repo.maven.apache.org/maven2/</url>
		</repository>
</repositories>
 
		<dependency>
		    <groupId>com.qiniu</groupId>
		    <artifactId>qiniu-java-sdk</artifactId>
		    <version>7.1.0</version>
		</dependency>


java 代码

 

 

import java.io.IOException;

import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;

public class QiniuUtil {
	
	 //设置好账号的ACCESS_KEY和SECRET_KEY
	  String ACCESS_KEY = "Bq**********************lSc_pZUZ_"; //这两个登录七牛 账号里面可以找到
	  String SECRET_KEY = "Dyag******************";

	  //要上传的空间
	  String bucketname = "auto***file"; //对应要上传到七牛上 你的那个路径(自己建文件夹 注意设置公开)
	  //上传到七牛后保存的文件名
	  String key = "daimo6.png";  
	  //上传文件的路径
	  String FilePath = "d:\\daimao5.png";  //本地要上传文件路径

	  //密钥配置
	  Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
	  //创建上传对象
	  UploadManager uploadManager = new UploadManager();

	  //简单上传,使用默认策略,只需要设置上传的空间名就可以了
	  public String getUpToken(){
	      return auth.uploadToken(bucketname);
	  }
	  //普通上传
	  public void upload() throws IOException{
	    try {
	      //调用put方法上传
	      Response res = uploadManager.put(FilePath, key, getUpToken());
	      //打印返回的信息
	      System.out.println(res.bodyString()); 
	      } catch (QiniuException e) {
	          Response r = e.response;
	          // 请求失败时打印的异常的信息
	          System.out.println(r.toString());
	          try {
	              //响应的文本信息
	            System.out.println(r.bodyString());
	          } catch (QiniuException e1) {
	              //ignore
	          }
	      }       
	  }

	  public static void main(String args[]) throws IOException{  
	    new QiniuUtil().upload();
	  }

}

 

 

 

service调用

 

@RequestMapping(value = "list", method = RequestMethod.GET)
	public ModelAndView list(SearchVO vo, Integer sortType , HttpServletRequest request,@Language String language) throws Exception {
		
		
		 new QiniuUtil().upload();
}


重要的是如何得到 上传后的文件路径

 

每个账户 对应一个 外链的前缀 都是一样的 比如我的

http://7xuac******n.com/   看下你上传的文件可以发现这个规律,然后后面加上你传的文件名字就能对应你上传文件的外网地址了

如果文件有空格 和  中文名称   空格可以替换掉""    中文名称文件地址略微麻烦点, 我还在想,不知道七牛提供了api查询某个文件的网址不


另外 

 

这个函数修改下 就是 覆盖上传 替换掉原来文件

 

	  public String getUpToken(){
//	      return auth.uploadToken(bucketname);
		  //<bucket>:<key>,表示只允许用户上传指定key的文件。在这种格式下文件默认允许“修改”,已存在同名资源则会被本次覆盖。
		    //如果希望只能上传指定key的文件,并且不允许修改,那么可以将下面的 insertOnly 属性值设为 1。
		    //第三个参数是token的过期时间
		     return auth.uploadToken(bucketname, key, 3600, new StringMap().put("insertOnly", 0 ));
	  }

 

 

 

 

 

 

文件外链的格式为

http://domain/key

domain你可以登录https://portal.qiniu.com
然后在 空间设置 -> 域名管理 中查看

key 为空间中的文件名

 

 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值