Java--七牛雲存儲圖片示例

項目中會用到大量的圖片和小視頻,爲了分擔服務器壓力,將文件都放在七牛雲。這裏的思路很簡單,就是移動端、pc端把文件上傳到服務器,服務器作一個臨時緩存,保存必要的信息到數據庫後,將文件上傳到七牛雲,最後刪除服務器的緩存。固然,也能夠直接讓移動端、pc端把文件上傳到七牛雲,七牛雲在返回信息給服務器,這種方法雖然更佳,可是敲起代碼來有點麻煩,複雜。
1).先去註冊一個七牛雲賬號,新建一個存儲空間,存儲空間必定要設置公開!
2).下載java的SDK,這裏以java-sdk-7.1.1爲例
3).在maven中引入jar包java

<!-- 七牛雲 -->
    <dependency>  
      <groupId>com.qiniu</groupId>  
      <artifactId>qiniu-java-sdk</artifactId>  
      <version>7.1.1</version>  
    </dependency>

4).編寫七牛雲工具類:QiniuUtil.javagit

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中使用github

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