七牛雲試用指南-文件下載

在考證單文件直傳的效果時,已解說過從七牛雲下載文件的最基本要領,即拼出下載URL。針對差別的場景,還能夠給URL附加差別的指令和響應參數,對原文件舉行特別處置懲罰。

■ 下載公然文件

任何人在任何時候都能夠下載公然空間里的文件,只需曉得文件的資本名(Key)和地點Bucket,就能夠按以下劃定規矩組織出URL:

http://<Bucket>.qiniudn.com/<Key>

經由過程為存儲空間綁定自定義域名,還能夠組織出更貼合運用的URL:

http://<Domain>/<Key>

注重:只要在上傳時指定適宜的MIME範例,瀏覽器下載文件后才會正確地舉行處置懲罰。

■ 下載經由雲處置懲罰的公然文件

有時候,對原文件舉行肯定處置懲罰后再下載,會帶來不少方便,比方直接下載大型圖片的縮略圖等。七牛雲存儲供應雄厚的數據處置懲罰指令,能處置懲罰形形色色的資本(圖片、音頻、視頻、辦公文檔等等)。

根據以下劃定規矩組織URL即可觸發同步式數據處置懲罰:

http://<Bucket>.qiniudn.com/<Key>?<Fop>

注重:

  • 如許觸發的雲處置懲罰是同步實行的,當效果未被緩存時,會有些許耽誤;
  • 處置懲罰好的效果會被自動緩存在七牛雲中,加速下載速率;
  • 發起用於非耐久型熱門資本,節約存儲空間和存儲用度。

詳細數據處置懲罰指令和參數規格將在後續文章中睜開引見。

■ 下載私有文件

與公然空間相反,私有空間中的文件只許可特定的人在特定的時候段內接見。這是經由過程在URL上附加下載受權憑據完成的,劃定規矩以下:

http://<Bucket>.qiniudn.com/<Key>?e=<deadline>&token=<DownloadToken>

个中,

  • e字段指定下載受權有效期的停止時候,是一個UNIX時候戳,單元為秒;
  • token字段指定下載受權憑據,必需作為下載URL的末了一個參數。

下載URL的簽發算法以下所示:

#!/usr/bin/env ruby
# encoding : utf-8
# download_token.rb

require '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_url
end # download_url

ACCESS_KEY = 'MY_ACCESS_KEY'        # 運用時請替換成實在的AccessKey
SECRET_KEY = 'MY_SECRET_KEY'        # 運用時請替換成實在的SecretKey

EXPIRES = 600

url = '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://<Bucket>.qiniudn.com/<Key>?<Fop>&e=<deadline>&token=<DownloadToken>

要點是將e參數和token參數按遞次放在全部URL的末了。

■ 我們行進到哪兒了?

為七牛雲中的資本組織下載URL是很輕易的,組織劃定規矩簡樸好記,運用輕便。下一章將引見相干的編程實踐內容。

上一篇 單文件直傳(實踐)

下一篇 圖片處置懲罰

回目次

七牛雲存儲 © 2014 簽名-非商業性運用-制止歸納

許可自在轉載,請說明作者及出處。

    原文作者:無鋒之刃
    原文地址: https://segmentfault.com/a/1190000000389192
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞