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

来源:互联网 发布:物流信息发布平台源码 编辑:程序博客网 时间:2024/05/21 08:43

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 为空间中的文件名



1 0
原创粉丝点击