本文主要介绍与对象(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