在考證單文件直傳的效果時,已解說過從七牛雲下載文件的最基本要領,即拼出下載URL。針對差別的場景,還能夠給URL附加差別的指令和響應參數,對原文件舉行特別處置懲罰。
■ 下載公然文件任何人在任何時候都能夠下載公然空間里的文件,只需曉得文件的資本名(Key)和地點Bucket,就能夠按以下劃定規矩組織出URL:
http://.qiniudn.com/
經由過程為存儲空間綁定自定義域名,還能夠組織出更貼合運用的URL:
http:///
注重:只要在上傳時指定適宜的MIME範例,瀏覽器下載文件后才會正確地舉行處置懲罰。
■ 下載經由雲處置懲罰的公然文件有時候,對原文件舉行肯定處置懲罰后再下載,會帶來不少方便,比方直接下載大型圖片的縮略圖等。七牛雲存儲供應雄厚的數據處置懲罰指令,能處置懲罰形形色色的資本(圖片、音頻、視頻、辦公文檔等等)。
根據以下劃定規矩組織URL即可觸發同步式數據處置懲罰:
http://.qiniudn.com/?
注重:
- 如許觸發的雲處置懲罰是同步實行的,當效果未被緩存時,會有些許耽誤;
- 處置懲罰好的效果會被自動緩存在七牛雲中,加速下載速率;
- 發起用於非耐久型熱門資本,節約存儲空間和存儲用度。
詳細數據處置懲罰指令和參數規格將在後續文章中睜開引見。
■ 下載私有文件與公然空間相反,私有空間中的文件只許可特定的人在特定的時候段內接見。這是經由過程在URL上附加下載受權憑據完成的,劃定規矩以下:
http://.qiniudn.com/?e=&token=
个中,
- e字段指定下載受權有效期的停止時候,是一個UNIX時候戳,單元為秒;
- token字段指定下載受權憑據,必需作為下載URL的末了一個參數。
下載URL的簽發算法以下所示:
#!/usr/bin/env ruby# encoding : utf-8# download_token.rbrequire 'base64'require 'openssl'def download_url(access_key, secret_key, url, expires) # 盤算受權有效期停止時候,UNIX時候戳花樣 deadline = (Time.now() + expires).tv_sec() # 將停止時候作為e參數的值,附加到URL上 new_url = url if new_url =~ /[?]/ then new_url += "&e=#{deadline}" else new_url += "?e=#{deadline}" end # 運用SHA1作為HASH函數,天生簽名 sign = OpenSSL::HMAC.digest( 'sha1', secret_key, new_url ) # 對簽名做UrlSafe-Base64編碼 encoded_sign = Base64.urlsafe_encode64(sign) # 拼出下載受權憑據,以“:”作為分隔符 token = "#{access_key}:#{encoded_sign}" # 拼出完全URL new_url += "&token=#{token}" return new_urlend # download_urlACCESS_KEY = 'MY_ACCESS_KEY' # 運用時請替換成實在的AccessKeySECRET_KEY = 'MY_SECRET_KEY' # 運用時請替換成實在的SecretKeyEXPIRES = 600url = 'http://private.qiniudn.com/test.txt'new_url = download_url(ACCESS_KEY, SECRET_KEY, url, 600)puts new_url # 輸出示例:http://private.qiniudn.com/test.txt?e=1389852108&token=MY_ACCESS_KEY:MAso7VUwAHwXNHghlDSrPXqpnYM=■ 下載經由雲處置懲罰的私有文件
私有文件一樣能夠先經由雲處置懲罰再下載,URL組織劃定規矩以下:
http://.qiniudn.com/?&e=&token=
要點是將e參數和token參數按遞次放在全部URL的末了。
■ 我們行進到哪兒了?為七牛雲中的資本組織下載URL是很輕易的,組織劃定規矩簡樸好記,運用輕便。下一章將引見相干的編程實踐內容。
上一篇 單文件直傳(實踐)
下一篇 圖片處置懲罰
回目次
七牛雲存儲 © 2014 簽名-非商業性運用-制止歸納
許可自在轉載,請說明作者及出處。