Java--七牛云存储图片示例

项目中会用到大量的图片和小视频,为了分担服务器压力,将文件都放在七牛云。这里的思路很简单,就是移动端、pc端把文件上传到服务器,服务器做一个临时缓存,保存必要的信息到数据库后,将文件上传到七牛云,最后删除服务器的缓存。当然,也可以直接让移动端、pc端把文件上传到七牛云,七牛云在返回信息给服务器,这种方法虽然更佳,但是敲起代码来有点麻烦,复杂。
1).先去注册一个七牛云帐号,新建一个存储空间,存储空间一定要设置公开!
2).下载java的SDK,这里以java-sdk-7.1.1为例
3).在maven中引入jar包

 
    <dependency>  
      <groupId>com.qiniugroupId>  
      <artifactId>qiniu-java-sdkartifactId>  
      <version>7.1.1version>  
    dependency>  

4).编写七牛云工具类:QiniuUtil.java

package com.hsp.util;
import java.io.IOException;
import java.util.UUID;

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

public class QiniuUtil {  

     //设置需要操作的账号的AK和SK
     private static final String ACCESS_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";   
     private static final String SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";  

     //要上传的空间  
     private static final String bucketname = "xxxxxxxxxxxxxxxxxx";      

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

     //普通上传  
     public void upload(String filePath, String fileName) throws IOException{  
        //创建上传对象  
        UploadManager uploadManager = new UploadManager();
        try {  
           //调用put方法上传  
           Response res = uploadManager.put(filePath, fileName, auth.uploadToken(bucketname));  
           //打印返回的信息  
           //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 void delete(String key) throws IOException {
         //实例化一个BucketManager对象
         BucketManager bucketManager = new BucketManager(auth);
         //此处的33是去掉:http://ongsua0j7.bkt.clouddn.com/,剩下的key就是图片在七牛云的名称
         key = key.substring(33);
         //System.out.println("key---------->" + key);
         try {
              //调用delete方法移动文件
              bucketManager.delete(bucketname, key);
            } catch (QiniuException e) {
              //捕获异常信息
              Response r = e.response;
              System.out.println(r.toString());
            }
     }
}

5).在controller中使用

...
       QiniuUtil qiniuUtil = new QiniuUtil();
            try {
                //上传到七牛云
                qiniuUtil.upload(filePath, fileName);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
...

你可能感兴趣的:(java,七牛云,云存储)