使用七牛雲存儲圖片案例

使用七牛雲存儲圖片案例

現在很多的網站都會用到大量的圖片,而圖片是網頁傳輸中佔主要的數據量,也是影響網站性能的因素之一。因此很多網站都會將圖片存儲從網站中分離出來,另外搭建一個或多個服務器來存儲圖片,而網頁上的圖片都用一個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

使用七牛雲存儲圖片案例


分享到:


相關文章: