本文介紹osscmd的使用樣本。
osscmd於2019年7月31日下線,阿里雲不再繼續維護更新。osscmd操作命令已整合到ossutil中,推薦您使用ossutil。
安裝配置osscmd
在Linux或者Windows上下載SDK安裝包後,解壓縮後即可使用osscmd。
使用osscmd時直接調用Python osscmd即可擷取相應的說明。每種命令有兩種執行模式。以執行gs命令查詢使用者所建立的Bucket為例:
方法1:不指定ID和KEY,osscmd從預設檔案中讀取ID和KEY。
$ python osscmd gs can't get accessid/accesskey, setup use : config --id=accessid --key=accesskey
說明如果出現這樣的提示,表明沒有配置好ID和KEY,見方法2中提示的配置命令。
如果配置好ID和KEY,並且ID和KEY有效,執行
$ python osscmd gs 2021-07-19 08:11 test-oss-sample Bucket Number is: 1
方法2:直接在命令中指定ID和KEY,osscmd從命令列中讀取ID和KEY。如果ID和KEY有效,執行後得到以下結果。
$ python osscmd gs --id=your_id --key=your_key --host=your_endpoint 2021-07-19 08:11 test-oss-sample Bucket Number is: 1
如果要配置使用者的ID和KEY到預設的檔案中,請運行如下命令用來配置訪問OSS所需要的ID和KEY。預設的OSS HOST為oss.aliyuncs.com。
$python osscmd config --id=your_id --key=your_key --host=your_endpoint
如果出現類似“Your configuration is saved into ”的提示,表明ID和KEY已經儲存成功。
基礎操作
列出建立的Bucket
$python osscmd getallbucket
如果是初次使用OSS的使用者且沒有建立Bucket,則輸出為空白。
建立Bucket
建立一個名為mybucketname的Bucket。
$python osscmd createbucket mybucketname
建立該Bucket可能不成功。原因是OSS中的Bucket名字是全域唯一的,此時您需要換一個Bucket名字,如在Bucket名字中加入特定的日期。
查看是否建立成功
$python osscmd getallbucket
如果沒有成功請檢查osscmd返回的錯誤資訊。
查看Object
成功建立Bucket後,查看Bucket中有哪些Object。
$python osscmd list oss://mybucketname/
由於Bucket中還沒有object,輸出為空白。
上傳object
向Bucket中上傳一個Object。假如本地檔案名稱叫local_existed_file,其MD5值如下所示。
$ md5sum local_existed_file 7625e1adc3a4b129763d580ca0a78e44 local_existed_file $ python osscmd put local_existed_file oss://mybucketname/test_object
說明md5sum
為 Linux 命令, Windows下無此命令。再次查看Object
如果建立成功,再次查看Bucket中有哪些Object。
$python osscmd list oss://mybucketname/
下載Object
從Bucket中下載Object到本地檔案,並比對下載的檔案的MD5值
$ python osscmd get oss://mybucketname/test_object download_file $ md5sum download_file 7625e1adc3a4b129763d580ca0a78e44 download_file
說明md5sum
為 Linux 命令, Windows下無此命令。刪除Object
$ python osscmd delete oss://mybucketname/test_object
刪除Bucket
說明如果Bucket中還有Object,則這個Bucket不能被刪除。
$ python osscmd deletebucket mybucketname
使用lifecycle
配置一個lifecycle的xml格式的文字檔
<LifecycleConfiguration> <Rule> <ID>1125</ID> <Prefix>log_backup/</Prefix> <Status>Enabled</Status> <Expiration> <Days>2</Days> </Expiration> </Rule> </LifecycleConfiguration>
表示刪除Bucket下以log_backup/ 為首碼,並且相對目前時間超過2天的Object。詳細的規則配置可以參考API文檔
寫入lifecycle
python osscmd putlifecycle oss://mybucket lifecycle.xml 0.150(s) elapsed
讀取lifecycle
python osscmd getlifecycle oss://mybucket <?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>1125</ID> <Prefix>log_backup/</Prefix> <Status>Enabled</Status> <Expiration> <Days>2</Days> </Expiration> </Rule> </LifecycleConfiguration> 0.027(s) elapsed
刪除lifecycle
python osscmd deletelifecycle oss://mybucket 0.139(s) elapsed
讀取lifecyle
python osscmd getlifecycle oss://mybucket Error Headers: [('content-length', '288'), ('server', 'AliyunOSS'), ('connection', 'close'), ('x-oss-request-id', '54C74FEE5D7F6B24E5042630'), ('date', 'Tue, 27 Jan 2015 08:44:30 GMT'), ('content-type', 'application/xml')] Error Body: <?xml version="1.0" encoding="UTF-8"?> <Error> <BucketName>mybucket</BucketName> <Code>NoSuchLifecycle</Code> <Message>No Row found in Lifecycle Table.</Message> <RequestId>54C74FEE5D7F6B24E5042630</RequestId> <HostId>mybucket.oss-maque-hz-a.alibaba.net</HostId> </Error> Error Status: 404 getlifecycle Failed!
防盜鏈設定
允許空referer訪問
$osscmd putreferer oss://test --allow_empty_referer=true 0.004(s) elapsed
擷取referer配置
$osscmd getreferer oss://test <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>true</AllowEmptyReferer> <RefererList /> </RefererConfiguration>
不允許空referer,只允許referer為www.example.com的請求
$osscmd putreferer oss://test --allow_empty_referer=false --referer='www.example.com' 0.092(s) elapsed
擷取referer配置
$osscmd getreferer oss://test <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>false</AllowEmptyReferer> <RefererList> <Referer>www.example.com</Referer> </RefererList> </RefererConfiguration>
不允許空referer,只允許referer為www.example.com和www.example.org的請求
$osscmd putreferer oss://test --allow_empty_referer=false --referer='www.example.com,www.example.org'
擷取設定的referer
$osscmd getreferer oss://test <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>false</AllowEmptyReferer> <RefererList> <Referer>www.example.com</Referer> <Referer>www.example.org</Referer> </RefererList> </RefererConfiguration>
使用logging
設定logging
$osscmd putlogging oss://mybucket oss://myloggingbucket/mb
擷取設定的logging
$osscmd getlogging oss://mybucket