公開資源下載
公開資源下載非常簡單,以HTTP GET方式訪問資源URL即可。資源URL的構(gòu)成如下:
http://<domain>/<key>
以上的<domain>
有兩種形態(tài):七牛子域名,自定義域名。
七牛子域名是一個創(chuàng)建空間時缺省分配的域名,開發(fā)者可以在開發(fā)者平臺 - 空間設(shè)置 - 域名設(shè)置查看該子域名。子域名通常類似于developer.qiniu.com
,用戶可以通過以下URL下載名為flower.jpg的資源:
http://developer.qiniu.com/resource/flower.jpg
開發(fā)者可以申請為某特定空間綁定一個自定義域名,以通過這個域名訪問資源,比如綁定了一個自定義域名i.example.com
,就可以通過以下URL訪問同樣的資源:
http://i.example.com/flower.jpg
私有資源下載
當(dāng)用戶將空間設(shè)置成私有后,所有對空間內(nèi)資源的訪問都必須獲得授權(quán)。
私有資源下載也是通過以HTTP GET方式訪問一個特定URL完成。私有資源URL與公開資源URL相比只是增加了兩個參數(shù)e
和token
,分別表示過期時間和下載憑證。一個完整的私有資源URL如下所示:
http://<domain>/<key>?e=<deadline>&token=<downloadToken>
參數(shù)e
表示URL的過期時間,采用UNIX Epoch時間戳格式,單位為秒。超時的訪問將返回401錯誤。
如果請求方的時鐘未校準(zhǔn),可能會造成有效期驗證不正常,比如直接認(rèn)為已過期。因此需要進(jìn)行時鐘校準(zhǔn)。由于開發(fā)者無法保證客戶端的時間都校準(zhǔn),所以應(yīng)該在業(yè)務(wù)服務(wù)器上創(chuàng)建時間戳,并周期性校準(zhǔn)業(yè)務(wù)服務(wù)器時鐘。
參數(shù)token
攜帶下載憑證。下載憑證是對資源訪問的授權(quán),不帶下載憑證或下載憑證不合法都會導(dǎo)致401錯誤,表示驗證失敗。關(guān)于下載憑證的生成,請參見下載憑證。
防盜鏈
下載還有一種常見的場景,即公開資源的防盜鏈,比如禁止特定來源域名的訪問,禁止非瀏覽器發(fā)起的訪問等。
我們可以通過HTTP協(xié)議支持的Referer機制(參見HTTP Referer)來進(jìn)行相應(yīng)的來源識別和管理。
防盜鏈?zhǔn)且粋€系統(tǒng)設(shè)置,不影響開發(fā)工作。如發(fā)現(xiàn)有盜鏈情況,開發(fā)者可在開發(fā)者平臺的空間設(shè)置頁面進(jìn)行相應(yīng)的設(shè)置。