本文主要介紹與對象(Object)相關的命令。
osscmd於2019年7月31日下線,阿里雲不再繼續維護更新。osscmd操作命令已整合到ossutil中,推薦您使用ossutil。
ls(list)
命令說明:
ls(list) oss://bucket/[prefix] [marker] [delimiter] [maxkeys]
列出儲存空間(Bucket)中的Object。填寫prefix時,可以列出以指定首碼開頭的所有檔案。例如,prefix為abc,則列出名稱以abc開頭的所有Object。
使用示範:
python osscmd ls oss://mybucket/folder1/folder2
python osscmd ls oss://mybucket/folder1/folder2 marker1
python osscmd ls oss://mybucket/folder1/folder2 marker1 /
python osscmd ls oss://mybucket/
python osscmd list oss://mybucket/ "" "" 100
命令說明:
ls(list) oss://bucket/[prefix] --marker=xxx --delimiter=xxx --maxkeys=xxx
--encoding_type=url
列出Bucket中的Object。其中encoding_type可以指定傳輸中使用的編碼。當指定為URL編碼時,支援顯示含控制字元的Object。
使用示範:
python osscmd ls oss://mybucket/folder1/folder2 --delimiter=/
python osscmd ls oss://mybucket/folder1/folder2 --marker=a
python osscmd ls oss://mybucket/folder1/folder2 --maxkeys=10
mkdir
命令說明:
mkdir oss://bucket/dirname
建立一個檔案夾。
使用示範:
python osscmd mkdir oss://mybucket/folder
listallobject
命令說明:
listallobject oss://bucket/[prefix]
列出Bucket下所有的Object,可以指定prefix來顯示。
使用示範:
python osscmd listallobject oss://mybucket
python osscmd listallobject oss://mybucket/testfolder/
deleteallobject
命令說明:
deleteallobject oss://bucket/[prefix]
刪除Bucket下所有的Object,可以指定prefix來刪除。
使用示範:
python osscmd deleteallobject oss://mybucket
python osscmd deleteallobject oss://mybucket/testfolder/
downloadallobject
命令說明:
downloadallobject oss://bucket/[prefix] localdir --replace=false
--thread_num=5
將Bucket下的Object下載到本地目錄,並且保持目錄結構。可以指定prefix下載。—replace=false表示下載時不會覆蓋本地的同名檔案,為true時則覆蓋。同時可以通過thread_num來配置下載線程。
使用示範:
python osscmd downloadallobject oss://mybucket /tmp/folder
python osscmd downloadallobject oss://mybucket /tmp/folder –-replace=false
python osscmd downloadallobject oss://mybucket /tmp/folder –-replace=true --thread_num=5
downloadtodir
命令說明:
downloadtodir oss://bucket/[prefix] localdir --replace=false
將Bucket下的Object下載到本地目錄,並且保持目錄結構。可以指定prefix下載。—replace=false表示下載時不會覆蓋本地的同名檔案,為true時則覆蓋。downloadtodir與downloadallobject 效果一樣。
使用示範:
python osscmd downloadtodir oss://mybucket /tmp/folder
python osscmd downloadtodir oss://mybucket /tmp/folder –-replace=false
python osscmd downloadtodir oss://mybucket /tmp/folder –-replace=true
uploadfromdir
命令說明:
uploadfromdir localdir oss://bucket/[prefix] --check_point=check_point_file --replace=false
--check_md5=false --thread_num=5
將本地目錄裡的檔案上傳到Bucket中。
例如localdir為/tmp/
,裡面有a/b、a/c、a三個檔案,則上傳到OSS中為oss://bucket/a/b、oss://bucket/a/c、oss://bucket/a。如果指定了prefix為mytest,則上傳到OSS中為oss://bucket/mytest/a/b、oss://bucket/mytest/a/c、oss://bucket/mytest/a。
--check_point=check_point_file
用於指定檔案。指定檔案後,osscmd會將已經上傳的本地檔案以時間戳記的方式存放到check_point_file中,uploadfromdir命令會將正在上傳的檔案的時間戳記和check_point_file記錄的時間戳記進行比較。如果有變化則會重新上傳,否則跳過。預設情況下沒有check_point_file。--replace=false表示下載時不會覆蓋本地的同名檔案,為true時則覆蓋。--check_md5=false
表示上傳檔案時不會校正攜帶Content-MD5要求標頭,為true時則校正。
注意:check_point_file檔案中記錄的是上傳的所有檔案的。
使用示範:
python osscmd uploadfromdir /mytemp/folder oss://mybucket
python osscmd uploadfromdir /mytemp/folder oss://mybucket --check_point_file=/tmp/mytemp_record.txt
python osscmd uploadfromdir C:\Documents and Settings\User\My Documents\Downloads oss://mybucket --check_point_file=C:\cp.txt
put
命令說明:
put localfile oss://bucket/object --content-type=[content_type]
--headers="key1:value1#key2:value2" --check_md5=false
上傳一個本地的檔案到Bucket中,可以指定Object的content-type,或指定自訂的headers。--check_md5=false
表示上傳檔案時不會校正攜帶Content-MD5要求標頭,為true時則校正。
使用示範:
python osscmd put myfile.txt oss://mybucket
python osscmd put myfile.txt oss://mybucket/myobject.txt
python osscmd put myfile.txt oss://mybucket/test.txt --content-type=plain/text --headers=“x-oss-meta-des:test#x-oss-meta-location:CN”
python osscmd put myfile.txt oss://mybucket/test.txt --content-type=plain/text
upload
命令說明:
upload localfile oss://bucket/object --content-type=[content_type]
--check_md5=false
將本地檔案以Object group的形式上傳。不推薦使用。--check_md5=false
表示上傳檔案時不會校正攜帶Content-MD5要求標頭,為true時則校正。
使用示範:
python osscmd upload myfile.txt oss://mybucket/test.txt
--content-type=plain/text
get
命令說明:
get oss://bucket/object localfile
將object下載到本地檔案。
使用示範:
python osscmd get oss://mybucket/myobject /tmp/localfile
multiget(multi_get)
命令說明:
multiget(multi_get) oss://bucket/object localfile --thread_num=5
將Object以多線程的方式下載到本地檔案。同時可以配置線程數。
使用示範:
python osscmd multiget oss://mybucket/myobject /tmp/localfile
python osscmd multi_get oss://mybucket/myobject /tmp/localfile
cat
命令說明:
cat oss://bucket/object
讀取Object的內容,直接列印出來。在Object內容比較大的時候請不要使用。
使用示範:
python osscmd cat oss://mybucket/myobject
meta
命令說明:
meta oss://bucket/object
讀取Object的meta資訊,列印出來。meta資訊包括content-type、檔案長度、自訂meta等內容。
使用示範:
python osscmd meta oss://mybucket/myobject
copy
命令說明:
copy oss://source_bucket/source_object oss://target_bucket/target_object
--headers="key1:value1#key2:value2"
將源Bucket中的源Object複製到目的Bucket中的目的Object。
使用示範:
python osscmd copy oss://bucket1/object1 oss://bucket2/object2
rm(delete,del)
命令說明:
rm(delete,del) oss://bucket/object --encoding_type=url
刪除Object。當指定encoding-type為URL編碼時,傳入待刪除的字串也需為URL編碼。
使用示範:
python osscmd rm oss://mybucket/myobject
python osscmd delete oss://mybucket/myobject
python osscmd del oss://mybucket/myobject
python osscmd del oss://mybucket/my%01object --encoding_type=url
signurl(sign)
命令說明:
signurl(sign) oss://bucket/object --timeout=[timeout_seconds]
產生包含簽名的URL,並指定逾時時間。適用於bucket為私人時將特定的Object提供給他人訪問。
使用示範:
python osscmd sign oss://mybucket/myobject
python osscmd signurl oss://mybucket/myobject