天天看點

使用七牛雲存儲圖檔案例使用步驟:

作者:陳惠,叩丁狼進階講師。原創文章,轉載請注明出處。      

現在很多的網站都會用到大量的圖檔,而圖檔是網頁傳輸中占主要的資料量,也是影響網站性能的因素之一。是以很多網站都會将圖檔存儲從網站中分離出來,另外搭建一個或多個伺服器來存儲圖檔,而網頁上的圖檔都用一個URL位址來指向這些伺服器上的圖檔的位址,這樣的話網站的性能就明顯提高了。圖檔伺服器可以自己搭建,或者使用網上的雲伺服器,比如阿裡也有,本文選用的是七牛雲的對象存儲來實作。在七牛雲上個人注冊并且實名認證成功後可免費使用儲存空間10GB,用于測試是完全足夠了。

使用七牛雲存儲圖檔案例使用步驟:

使用步驟:

1. 準備工作

注冊後進行實名認證,通過後可以獲得AccessKey以及SecretKey,主要是後面調用接口的時候需要使用。

2.建立存儲空間

點選”管理控制台”——> “對象存儲”——>”建立存儲空間”,并且填入對應的資訊。

使用七牛雲存儲圖檔案例使用步驟:

如果你希望使用者在任何情況下都可以直接通路資源,可以直接将空間設為公開。

3.在項目中引入七牛雲提供的JAVA-SDK

注意:此 SDK 适用于 Java 7 及以上版本

使用maven的方式引入:

<dependency>
  <groupId>com.qiniu</groupId>
  <artifactId>qiniu-java-sdk</artifactId>
  <version>[7.2.0, 7.2.99]</version>
</dependency>
           

這裡的

version

指定了一個版本範圍,每次更新

pom.xml

的時候會嘗試去下載下傳

7.2.x

版本中的最新版本,不過你也可以手動指定一個固定的版本。

4.使用SDK提供的圖檔上傳工具

七牛檔案上傳分為用戶端上傳(主要是指網頁端和移動端等面向終端使用者的場景)和服務端上傳兩種場景,具體可以參考官方文檔 ,文中使用的是服務端上傳的方式。

結合

SpringMVC

來上傳圖檔到七牛雲:

/**
 * 檔案上傳工具
 */
public class UploadUtil {

    /**
     * 上傳到七牛雲
     * @param file 上傳的圖檔
     * @return 七牛雲中圖檔的名字
     */
    public static String uploadQiniu(MultipartFile file) {
        //構造一個帶指定Zone對象的配置類
        Configuration cfg = new Configuration(Zone.zone2());
        //...其他參數參考類注釋
        UploadManager uploadManager = new UploadManager(cfg);
        //...生成上傳憑證,然後準備上傳
        String accessKey = "你的accessKey";
        String secretKey = "你的secretKey";
        //存儲空間的名字
        String bucket = "wolfcode";
        //預設不指定key的情況下,以檔案内容的hash值作為檔案名
        String key = null;
        Auth auth = Auth.create(accessKey, secretKey);
        String upToken = auth.uploadToken(bucket);
        try {
            Response response = uploadManager.put(file.getBytes(), key, upToken);
            //解析上傳成功的結果
            DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
            return putRet.key;
        } catch (QiniuException ex) {
            Response r = ex.response;
            System.err.println(r.toString());
            try {
                System.err.println(r.bodyString());
            } catch (QiniuException ex2) {
                //ignore
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
}
           

備注:

1 七牛存儲支援空間建立在不同的機房,Zone對象是指定具體哪個機房

使用七牛雲存儲圖檔案例使用步驟:

2 預設不指定key的情況下,以檔案内容的hash值作為檔案名,使用hash的好處還可以去除重複圖檔,重複上傳同一張圖檔,在七牛雲中隻會占用一個圖檔的空間。

3 上傳成功後的傳回的DefaultPutRet對象,裡面包含圖檔的hash值,和圖檔的key值其實就是檔案名。

最後一步,就是通路圖檔了,打開對象存儲空間,可以看到七牛雲配置設定的外鍊域名,以及上傳過的圖檔,把域名和圖檔的key值拼接在一起,就是圖檔的URL了,如:http://pgd3zoxnk.bkt.clouddn.com/FgaeuBs1QwDZUd9UO4betMtgZOMs

使用七牛雲存儲圖檔案例使用步驟:
使用七牛雲存儲圖檔案例使用步驟: