配置ossutil
本文介紹ossutil的一些配置操作,您可以通過本文了解如何更好的使用ossutil。
通過config命令進行快速配置
對于大多數(shù)情況,通過該命令可以快速設(shè)置您的ossutil工具。該命令提供了交互式方式生成配置文件。
以Linux環(huán)境為例進行說明。
輸入配置命令。
ossutil config
根據(jù)提示設(shè)置配置文件路徑。
您可以根據(jù)實際需要設(shè)置配置文件的路徑。默認情況下,配置文件保存到~/.ossutilconfig文件里, 直接按回車則使用默認配置。
請輸入配置文件名,文件名可以帶路徑(默認為:/home/user/.ossutilconfig,回車將使用默認路徑。 如果用戶設(shè)置為其他路徑,在使用命令時需要將--config-file選項設(shè)置為該路徑):
根據(jù)提示設(shè)置工具的語言。
請輸入語言CH或EN。工具使用的語言默認與操作系統(tǒng)保持一致。該配置項將在此次config命令設(shè)置成功后生效。
根據(jù)提示分別設(shè)置Endpoint、AccessKey ID、AccessKey Secret和STSToken參數(shù)。
參數(shù)說明如下:
參數(shù)
說明
endpoint
填寫B(tài)ucket所在地域的Endpoint。關(guān)于各地域Endpoint的更多信息,請參見訪問域名和數(shù)據(jù)中心。
您也可以增加
http://
或https://
指定ossutil訪問OSS使用的協(xié)議,默認使用HTTP協(xié)議。例如,使用HTTPS協(xié)議訪問華東1(杭州)的Bucket,設(shè)置為https://oss-cn-hangzhou.aliyuncs.com
。accessKeyID
填寫賬號的AccessKey。
使用阿里云賬號或RAM用戶訪問時,AccessKey的獲取方式,請參見創(chuàng)建AccessKey。
使用STS臨時授權(quán)賬號訪問時,AccessKey的獲取方式,請參見AssumeRole - 獲取扮演角色的臨時身份憑證。
accessKeySecret
stsToken
使用STS臨時授權(quán)賬號訪問OSS時需要配置該項,否則置空即可。關(guān)于stsToken的生成方式,請參見AssumeRole - 獲取扮演角色的臨時身份憑證。
說明關(guān)于配置文件的更多信息,請參見config。
如果在步驟2設(shè)置了配置文件的路徑,則每次使用命令時需增加-c選項指定配置文件。
例如,配置文件保存為/home/config,使用ls時,命令格式如下:
ossutil -c /home/config ls oss://examplebucket
命令配置文件
您可以將常用的憑證信息和配置信息保存到配置文件里,以方便使用。配置文件采用了INI格式結(jié)構(gòu),以節(jié)(section)和鍵(key)構(gòu)成, 配置參數(shù)保存在指定的節(jié)里。常用的配置參數(shù)如下:
配置參數(shù) | 說明 | 示例代碼 |
language | 設(shè)置ossutil工具的語言。取值:
|
|
endpoint | 設(shè)置Bucket所在地域的域名信息。 |
|
accessKeyID | 訪問密鑰的一部分,用于標識用戶身份,以對命令請求進行身份驗證。 |
|
accessKeySecret | 訪問密鑰的一部分,用于驗證用戶的密鑰,以對命令請求進行身份驗證。 |
|
stsToken | 臨時密鑰的Token,以對命令請求進行身份驗證。 |
|
mode | 采用的鑒權(quán)模式,取值可以為AK、StsToken、RamRoleArn或者EcsRamRole。 |
|
ramRoleArn | 鑒權(quán)模式下的RAM角色ARN。 |
|
roleSessionName | 鑒權(quán)模式下的會話名稱,用于RamRoleArn模式。不設(shè)置時,會生成隨機值。 |
|
tokenTimeout | 表示Token的有效時間,單位為秒,默認值為3600,用于RamRoleArn模式。 |
|
ecsRoleName | EcsRamRole鑒權(quán)模式下的角色名稱。 |
|
更多命令配置參數(shù),請參見編輯配置文件。
命令行選項
除了通過命令配置文件外,您還可以使用命令行參數(shù)設(shè)置相關(guān)的配置。命令行選項的優(yōu)先級要高于命令配置文件。常用命令行選項如下:
選項 | 說明 | 示例代碼 |
--loglevel | 日志級別,默認為空,表示不輸出日志文件。取值:
|
|
--connect-timeout | 表示客戶端連接超時的時間,單位為秒,默認值為120。 |
|
--read-timeout | 表示客戶端讀超時的時間,單位為秒,默認值為1200。 |
|
--retry-times | 當錯誤發(fā)生時的重試次數(shù),默認值為10。 |
|
-e, --endpoint | 請求的域名。 |
|
-i, --access-key-id | 訪問OSS使用的訪問憑證。 |
|
-k, --access-key-secret | 訪問OSS使用的訪問憑證。 |
|
-t, --sts-token | 訪問OSS使用的STSToken。 |
|
--mode | 表示鑒權(quán)模式,取值可以為AK、StsToken、RamRoleArn、EcsRamRole,默認值為空。 | 使用AK模式訪問的示例代碼如下:
|
--ram-role-arn | 鑒權(quán)模式下的RAM角色ARN。 |
|
--role-session-name | 鑒權(quán)模式下的會話名字。 |
|
--token-timeout | 表示Token的有效時間,單位為秒,默認值為3600。 |
|
--ecs-role-name | EcsRamRole鑒權(quán)模式下的角色名稱。 |
|
更多選項配置,請參見通用選項。
配置訪問憑證
您可以使用多種方式,通過配置文件或者命令行選項配置訪問憑證。
使用訪問密鑰訪問
以杭州地域名稱為example-bucket的Bucket為例進行說明。
通過配置文件
生成如下的配置文件,并保存在~/.myossutilconfig。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = LTAI4Fw2NbDUCV8zYUzA**** accessKeySecret = 67DLVBkH7EamOjy2W5RVAHUY9H****
通過如下命令查詢Bucket中的對象。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket
通過命令行選項
您也可以直接將訪問密鑰通過命令行參數(shù)傳入,示例代碼如下:
ossutil64 -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H**** ls oss://example-bucket
重要通過命令行參數(shù)需要傳入訪問密鑰,可能會被日志系統(tǒng)記錄,存在密鑰泄露的風險,請謹慎使用。
使用臨時Token訪問
以杭州地域名稱為example-bucket的Bucket為例進行說明。
通過配置文件
生成如下的配置文件,并保存在~/.myossutilconfig。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = STS.LTAI4Fw2NbDUCV8zYUzA**** accessKeySecret = 67DLVBkH7EamOjy2W5RVAHUY9H**** stsToken = yourSecurityToken
通過如下命令查詢Bucket中的對象。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket
通過命令行選項
您也可以直接將訪問密鑰通過命令行參數(shù)傳入,示例代碼如下:
ossutil64 -e oss-cn-hangzhou.aliyuncs.com -i STS.LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H**** -t yourSecurityToken ls oss://example-bucket
說明通過命令行參數(shù)需要傳入訪問密鑰,可能會被日志系統(tǒng)記錄,存在密鑰泄露的風險,請謹慎使用。
使用RAM角色訪問
以杭州地域名稱為example-bucket的Bucket,需要扮演的角色為ramRoleArnExample為例進行說明。
通過配置文件
生成如下的配置文件,并保存在~/.myossutilconfig。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = LTAI4Fw2NbDUCV8zYUzA**** accessKeySecret = 67DLVBkH7EamOjy2W5RVAHUY9H**** mode = RamRoleArn ramRoleArn = acs:ram::137918634953****:role/Alice roleSessionName = session_name_example (可以不設(shè)置) tokenTimeout = 1800 (可以不設(shè)置)
通過如下命令查詢Bucket中的對象。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket
通過命令行選項
您也可以直接將訪問密鑰通過命令行參數(shù)傳入,示例代碼如下:
ossutil64 -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H**** --mode RamRoleArn --ram-role-arn acs:ram::137918634953****:role/Alice ls oss://example-bucket
說明通過命令行參數(shù)需要傳入訪問密鑰,可能會被日志系統(tǒng)記錄,存在密鑰泄露的風險,請謹慎使用。
使用實例RAM角色訪問
在云服務(wù)器ECS上,您還可以通過實例RAM角色的方式來配置ossutil訪問憑證。實例RAM角色允許您將一個角色關(guān)聯(lián)到云服務(wù)器實例,在實例內(nèi)部基于臨時憑證STS使用ossutil。臨時憑證由系統(tǒng)自動生成和更新,應(yīng)用程序可以使用指定的實例元數(shù)據(jù)URL獲取臨時憑證,無需特別管理。借助于RAM,一方面保證AccessKey安全,另一方面實現(xiàn)權(quán)限的精細化控制和管理。
使用前請先在ECS上創(chuàng)建實例RAM角色。更多信息,請參見概述。
以杭州地域名稱為example-bucket的Bucket、ECS上創(chuàng)建的角色名稱為EcsRamRoleOss為例進行說明。
通過配置文件
生成如下的配置文件,并保存在~/.myossutilconfig。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com mode = EcsRamRole ecsRoleName = EcsRamRoleOss
通過如下命令查詢Bucket中的對象。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket
通過命令行選項
您也可以直接將訪問密鑰通過命令行參數(shù)傳入,示例代碼如下:
ossutil64 -e oss-cn-hangzhou.aliyuncs.com --mode EcsRamRole --ecs-role-name EcsRamRoleOss ls oss://example-bucket
為Bucket單獨配置Endpoint
在使用ossutil的過程中,您需要管理多個Bucket,此時需要對Bucket單獨配置Endpoint。您可以通過如下兩種方式進行配置:
通過配置文件
在配置文件里,增加一個[Bucket-Endpoint]配置段,為每個指定的Bucket單獨配置Endpoint,格式如下:
[Bucket-Endpoint] bucket1 = endpoint1 bucket2 = endpoint2 ...
以杭州地域Bucket(example-bucket-hz)、北京地域Bucket(example-bucket-bj)、上海地域Bucket(example-bucket-sh)為例進行說明。
生成如下的配置文件,并保存在~/.myossutilconfig。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = LTAI4Fw2NbDUCV8zYUzA**** accessKeySecret = LTAI4Fw2NbDUCV8zYUzA**** [Bucket-Endpoint] example-bucket-hz=oss-cn-hangzhou.aliyuncs.com example-bucket-bj=oss-cn-beijing.aliyuncs.com example-bucket-sh=oss-cn-shanghai.aliyuncs.com
通過如下命令查詢Bucket中的對象。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-hz ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-bj ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-sh
通過命令行選項
以杭州地域Bucket(example-bucket-hz)、北京地域Bucket(example-bucket-bj)、上海地域Bucket(example-bucket-sh)為例進行說明。
將賬號信息配置在~/.myossutilconfig中。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = LTAI4Fw2NbDUCV8zYUzA**** accessKeySecret = 67DLVBkH7EamOjy2W5RVAHUY9H****
通過-e參數(shù)指定Endpoint。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-hz ossutil64 -c ~/.myossutilconfig -e oss-cn-beijing.aliyuncs.com ls oss://example-bucket-bj ossutil64 -c ~/.myossutilconfig -e oss-cn-shanghai.aliyuncs.com ls oss://example-bucket-sh
配置自定義域名
ossutil支持通過自定義域名來訪問OSS資源。在使用之前,需要通過配置文件設(shè)置Bucket和自定義域名的映射關(guān)系。
在配置文件里,增加一個[Bucket-Cname]
配置段,為每個指定的Bucket單獨配置Endpoint,格式如下:
[Bucket-Cname]
bucket1 = cname1
bucket2 = cname2
...
以杭州地域名稱為example-bucket的Bucket、通過cname.example-***.com自定義域名訪問為例進行說明。
生成如下的配置文件,并保存在~/.myossutilconfig。
[Credentials]
accessKeyID = LTAI4Fw2NbDUCV8zYUzA****
accessKeySecret = 67DLVBkH7EamOjy2W5RVAHUY9H****
[Bucket-Cname]
example-bucket=cname.example-***.com
通過如下命令查詢Bucket中的對象。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket