1. 程式人生 > >上手七牛雲存儲

上手七牛雲存儲

構造 最終 類註釋 lan cti tput 註冊 小型網站 ray

早就聽說過七牛雲存儲,終於有時間上手實踐。

1、第一步,註冊七牛賬號,由於是測試,首先申請的是個人賬號

2、註冊成功之後,默認是體驗賬號,每月只有1G的空間容量及1G的下載流量

技術分享圖片

3、賬號認證,認證成功之後將升級為標準賬號,每月有10G的空間容量及20G的下載流量

技術分享圖片

雖然認證麻煩了些,但看得出來,七牛還是很良心的,這種免費套餐對於一般的小型網站應用來說應該是足夠了

說明一下,認證表單裏,有一個“個人網址”的文本框,一開始我以為是空間的自定義域名,後來試了一下,應該就是個人網站地址,可以隨便填,不影響使用。

4、認證成功之後,就可以正式開始使用七牛雲了

首先需要創建一個存儲空間,可以把這個存儲空間簡單理解為硬盤分區

我創建的存儲空間名稱是:myBucket,存儲區域:華北

其實存儲空間只支持小寫,如上面我的存儲空間創建成功之後就變成了:mybucket

然後需要為存儲空間綁定一個域名,這個要求擁有自己的可解析並且已備案的國際域名,比如:itez.com.cn

添加域名時,還有一個需要註意的地方,就是”加速域名“後面的文本框中,不要輸入根域名,而是要輸入最終的子域名,比如:qn.files.itez.com.cn

等一會之後,就會創建一個CNAME,比如:xxx.qiniudns.com

這時登錄自己域名的DNS解析管理頁面,將”qn.files.itez.com.cn“使用CNAME方式指向到“xxx.qiniudns.com”即可。

這時就可以在空間管理中,上傳文件到七牛雲了,成功後,可以使用上面添加的子域名來訪問上傳的文件,例如:http://qn.files.itez.com.cn/myLogo.jpg

5、開發API

在JAVA中集成七牛雲,添加引用:

<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>7.2.10</version>
</dependency
>

還需要以下相關信息:

1)AccessKey:在七牛雲的“個人中心/密鑰管理”中可以找到

2)SecretKey:同上

3)存儲空間名稱:就是在創建存儲空間時填寫的名稱,比如:mybucket

4)存儲區域名稱:就是在創建存儲空間時選擇的存儲區域,目前有四種:華東、華北、華南、北美

技術分享圖片

示例代碼:

//構造一個帶指定Zone對象的配置類
Configuration cfg = new Configuration(Zone.zone0());
//...其他參數參考類註釋
UploadManager uploadManager = new UploadManager(cfg);
//...生成上傳憑證,然後準備上傳
String accessKey = "your access key";
String secretKey = "your secret key";
String bucket = "your bucket name";
//默認不指定key的情況下,以文件內容的hash值作為文件名
String key = null;
try {
byte[] uploadBytes = "hello qiniu cloud".getBytes("utf-8");
ByteArrayInputStream byteInputStream=new ByteArrayInputStream(uploadBytes);
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
    Response response = uploadManager.put(byteInputStream,key,upToken,null, null);
    //解析上傳成功的結果
    DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
    System.out.println(putRet.key);
    System.out.println(putRet.hash);
} catch (QiniuException ex) {
    Response r = ex.response;
    System.err.println(r.toString());
    try {
    System.err.println(r.bodyString());
    } catch (QiniuException ex2) {
    //ignore
    }
}
} catch (UnsupportedEncodingException ex) {
//ignore
}

更多API詳細說明:https://developer.qiniu.com/kodo

上手七牛雲存儲