sign(生成簽名URL)
默認(rèn)情況下,OSS存儲(chǔ)空間中文件的讀寫權(quán)限是私有,僅文件擁有者具有訪問文件的權(quán)限。但是,文件擁有者可以通過sign命令創(chuàng)建簽名URL的方式與第三方用戶分享文件,簽名URL使用安全憑證的方式授權(quán)第三方用戶在指定時(shí)間內(nèi)下載或者預(yù)覽文件。
第三方用戶通過簽名URL可以訪問簽名URL中指向的Object,與該Object的ACL是公共讀或者私有,是否通過Bucket Policy或者RAM Policy授權(quán)第三方用戶擁有訪問指定Object的權(quán)限無關(guān)。
從ossutil 1.6.16版本開始,命令行中Binary名稱支持直接使用ossutil,您無需根據(jù)系統(tǒng)刷新Binary名稱。如果您的ossutil版本低于1.6.16,則需要根據(jù)系統(tǒng)刷新Binary名稱。更多信息,請(qǐng)參見命令行工具ossutil命令參考。
命令格式
ossutil sign cloud_url
[--timeout <value>]
[--version-id <value>]
[--trafic-limit <value>]
[--disable-encode-slash]
[--payer <value>]
[--query-param <value>]
參數(shù)及選項(xiàng)說明如下:
配置項(xiàng) | 說明 |
cloud_url | 文件所在Bucket的完整路徑。 |
--timeout | 簽名URL過期時(shí)間,單位為秒。默認(rèn)值為60。 重要 當(dāng)前時(shí)間戳與簽名URL的過期時(shí)間之和不能超過9223372036854775807,否則會(huì)溢出報(bào)錯(cuò)。例如,當(dāng)前時(shí)間戳為1643341269,則簽名URL過期時(shí)間最大不能超過9223372035211434538。 |
--version-id | Object的指定版本ID。僅適用于已開啟或暫停版本控制狀態(tài)Bucket下的Object。 |
--trafic-limit | 限定HTTP的訪問速度,單位為bit/s。缺省值為0,表示不受限制。取值范圍為819200~838860800,即100 KB/s~100 MB/s。 |
--disable-encode-slash | 不對(duì)cloud_url中攜帶的正斜線(/)進(jìn)行編碼。 |
--payer | 請(qǐng)求的支付方式。如果希望訪問指定路徑下的資源產(chǎn)生的流量、請(qǐng)求次數(shù)等費(fèi)用由請(qǐng)求者支付,請(qǐng)將此選項(xiàng)的值設(shè)置為requester。 |
--query-param | 設(shè)置請(qǐng)求中的查詢參數(shù)。該參數(shù)可以出現(xiàn)多次。例如,您可以將該參數(shù)設(shè)置為圖片處理參數(shù)。 --query-param支持的參數(shù)為:x-oss-process、response-content-type、x-oss-traffic-limit、response-content-language、response-expires、response-cache-control、response-content-disposition、response-content-encoding、x-oss-ac-source-ip、x-oss-ac-subnet-mask、x-oss-ac-vpc-id、x-oss-ac-forward-allow。關(guān)于參數(shù)含義的更多信息,請(qǐng)參見簽名版本1和GetObject。 說明 僅1.7.15及以上版本支持設(shè)置--query-param參數(shù)。 |
使用示例
為目標(biāo)存儲(chǔ)空間examplebucket下的文件exampleobject.png生成文件URL,其默認(rèn)超時(shí)時(shí)間為60秒。
ossutil sign oss://examplebucket/exampleobject.png
為目標(biāo)存儲(chǔ)空間examplebucket下的文件exampleobject.png生成文件URL,并指定超時(shí)時(shí)間為3600秒。
ossutil sign oss://examplebucket/exampleobject.png --timeout 3600
為目標(biāo)存儲(chǔ)空間examplebucket下的文件exampleobject.png生成文件URL,指定其超時(shí)時(shí)間為7200秒,并限定其訪問速度為100MB/s。
ossutil sign oss://examplebucket/exampleobject.png --timeout 7200 --trafic-limit 838860800
為已開啟版本控制的存儲(chǔ)空間examplebucket下的exampleobject.jpg的指定版本文件生成文件URL,并指定超時(shí)時(shí)間為1800秒。
ossutil sign oss://examplebucket/exampleobject.jpg --timeout 1800 --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
為目標(biāo)存儲(chǔ)空間examplebucket下的文件exampleobject.jpg生成處理后的圖片URL,將圖片寬高設(shè)置為100px,并旋轉(zhuǎn)90度。
ossutil sign oss://examplebucket/exampleobject.jpg --query-param x-oss-process:image/resize,m_fixed,w_100,h_100/rotate,90
為目標(biāo)存儲(chǔ)空間examplebucket下的文件exampleobject.jpg生成處理后的圖片URL,將圖片寬高設(shè)置為100px,并旋轉(zhuǎn)90度,然后限速100 KB/s,即819200 bit/s。
ossutil sign oss://examplebucket/exampleobject.jpg --query-param x-oss-process:image/resize,m_fixed,w_100,h_100/rotate,90 --query-param x-oss-traffic-limit:819200
以上示例操作成功后,返回結(jié)果中將包含生成文件URL所用時(shí)長、文件URL過期時(shí)間以及簽名等信息,示例如下:
https://examplebucket.ss-cn-hangzhou.aliyuncs.com/exampleobject.png?Expires=1608282224&OSSAccessKeyId=LTAI4G33piUmgRN1DXx9****&Signature=jo4%2FGykfuc1A4fvyvKRpRyymYH**** 0.368676(s) elapsed
通用選項(xiàng)
當(dāng)您需要通過命令行工具ossutil切換至另一個(gè)地域的Bucket時(shí),可以通過-e選項(xiàng)指定該Bucket所屬的Endpoint。當(dāng)您需要通過命令行工具ossutil切換至另一個(gè)阿里云賬號(hào)下的Bucket時(shí),可以通過-i選項(xiàng)指定該賬號(hào)的AccessKey ID,并通過-k選項(xiàng)指定該賬號(hào)的AccessKey Secret。
例如您需要為另一個(gè)阿里云賬號(hào)下,華東2(上海)地域下存儲(chǔ)空間testbucket下的exampletest.jpg文件生成超時(shí)時(shí)間為3600秒的文件URL,命令如下:
ossutil sign oss://testbucket/exampletest.jpg --timeout 3600 -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
關(guān)于此命令的其他通用選項(xiàng)的更多信息,請(qǐng)參見通用選項(xiàng)。