Object管理
Object上传
描述: BOS CMD支持同步上传、单文件上传、批量上传三种方式,上传过程中可以指定Object的存储类型是标准存储、低频存储或冷存储。此外BOS CMD还支持:
- 对于大于32M的文件自动分块并发上传,并设置上传的并发连接数等。
当您需要在本地和BOS之间进行数据上传,同步上传(sync)是最方便的上传命令。同步上传默认支持批量操作,可以将本地目录同步到BOS。如果BOS端已经有名称相同且修改时间比本地文件新,同步上传会忽略此文件,只同步新文件或有改动的文件。 sync命令会同时列举本地和BOS侧文件, 对于不同情况分别执行以下动作:
- 对于新增的文件(本地的某个文件BOS侧没有):上传
- 对于已上传但是有改动的文件(本地文件的更新时间晚于BOS侧文件的创建时间, 或者本地文件的大小跟BOS侧不一致):覆盖上传
- 对于已上传且没改动的文件:跳过不处理
- 对于已上传但是在本地没有的文件:根据--delete参数来做不同的处理。
- 对于sync命令来说需要配置粗粒度LIST权限 或 细粒度列表LIST权限以及GetBucketLocation才能生效
- 上传进度信息保存在
--conf-path
指定目录下的task_progress
子目录下的文件,文件名为PID-yyyy-mm-ddTHH:MM:SS
,如:10516-2025-06-13T16:11:27
命令格式:
-
同步上传:
$ bcecmd bos sync <local_dir> bos:/<bucket_name>/[prefix] [--exclude EXCLUDE] [--include INCLUDE] [--delete] [--exclude-delete EXCLUDE-DELETE] [--dryrun] [--yes] [--quiet] [--storage-class STORAGE-CLASS] [--sync-type SYNC-TYPE] [--concurrency CONCURRENCY] [--restart] [--cache-control cacheControl] [--content-type CONTENT-TYPE] [--expires EXPIRES] [--content-disposition CONTENT-DISPOSITION] [--user-meta USER-META]
参数说明:
local_dir
必须为本地目录,不能为单个文件。也不支持通配符匹配的语法,如<local_dir>/*
以及<local_dir>/prefix*
等。- 在windows和linux系统下, 硬链接文件和普通文件的处理方式一样,软链接文件夹和普通文件夹的处理方式一样,但软链接文件(指向文件的软链接)和普通文件的处理方式不一样,sync会操作软链接文件指向的文件而不是软链接文件本身,但是软链接本身被删除, 也会触发sync。
- --exclude:执行本地到bos的sync的时候, 需要跳过的文件, 支持通配符
*
和多项配置,通配符*
可能会被shell解析,需要加上引号 如要跳过tmp文件和当前目录所有子目录下的svn目录:--exclude './*.tmp' --exclude '*/.svn'
- --include:执行本地到bos的sync的时候, 只同步指定文件, 支持通配符
*
和多项配置, 如只同步当前目录所有子目录下的log文件和html文件:--include './*.log' --include './*.html' --include "./*.log"
(windows只能双引号) - --delete:删除BOS有而本地没有的文件,使BOS和本地的数据完全一致。执行后默认会提示用户是否要执行删除。
- --exclude-delete:此选项需要同
--delete
一起使用, 用于在删除本地文件时排除特定文件或目录, 具体用法请参考--exclude
的使用规则。 - --dryrun:列出会执行的操作但不实际执行。
- --yes:执行删除动作时不需要确认直接删除。
- --quiet:同步上传但不输出任何中间过程。
- --storage-class [STORAGE_CLASS]:通过storage-class参数指定同步上传的Object的存储类型。指定storage-class为
STANDARD_IA
、COLD
时表示存储为低频存储、冷存储,指定的storage-class为STANDARD
或者不指定storage-class时为标准存储。 -
--sync-type: 同步类型可以为
time-size
,time-size-crc32
,only-crc32
和force-overwrite
, 默认为time-size
。 bcecmd 执行 sync 时首先会判断要同步的文件在目的端是否存在,如果不存在就会上传或者下载文件, 当源端和目的端都存在时, 就会根据同步类型来决定是否需要同步文件。time-size
: 比较源端和目的端文件的修改日期和大小来判断是否同步,当源端文件的修改日期早于目的端文件时,不会同步文件;当源端文件的修改日期等于目的端文件的修改日期,且它们的大小相同时不同步文件, 否则同步;time-size-crc32
: bcecmd 先使用time-size
模式判断是否需要同步文件, 当time-size
输出结果为需要同步文件时, bcecmd 将比较源端和目的端文件的 crc32, 当crc32的值不同时才会同步文件;only-crc32
: bcecmd 只会比较源端和目的端文件的crc32, 如果不同就会同步文件。force-overwrite
: 当遇到源端与目的端同名文件,bcecmd 将强制用源端文件覆盖目的端文件。
- --concurrency: 用于设置 sync 命令并发上传下载的文件数,默认为10。
- --restart: 忽略断点续传,重头开始上传文件。
- --cache-control: 指定文件缓存策略,常见值为
private
,public
,no-cache
,no-store
。 - --expires: 定义http页面的缓存过期时间,默认为3天。
- --content-type:定义网络文件的类型和网页的编码。
- --content-disposition:如何显示附加的文件,常见值为
inline
,attachment
。 - --user-meta:用户自定义meta值,格式为
name1:value1,name2:value2,name3:value3
。 - --traffic-limit:单链接限速,限速值的取值范围为819200~838860800,单位为bit/s,即100KB/s~100MB/s
注意
- sync命令需要您的aksk拥有fullcontrol权限
- 当--delete 与过滤(include 或exclude)同时使用时,如果一个文件被过滤,尽管它同时存在于源端和目的端, 它也会被删除。因为bcecmd只会比较未被过滤的文件。
- 需要注意 BOS 在2018年1月之后才全面支持CRC32, 所以当 bcecmd sync-type 选择为
time-size-crc32
或only-crc32
时,如果bcecmd 未能从BOS获取到 object 的 CRC32信息时, bcecmd 将总是会同步这些文件。
- 单文件上传:
$ bcecmd bos cp <local-path> <bos-path> [--storage-class [STORAGE_CLASS]] [--restart] [--quiet] [--yes] [--disable-bar]
-
批量上传:
$ bcecmd bos cp <local-path> <bos-path> --recursive [--storage-class [STORAGE_CLASS]] [--restart] [--quiet] [--yes] [--disable-bar]
说明:
- 执行bcecmd bos cp /tmp/file1 bos:/bucket/file2命令时,file2可以与file1相同,如果file2在bucket中已存在则会被覆盖。
- 执行bcecmd bos cp /tmp/file bos:/bucket/命令时,自动使用本地文件名作为bos端文件名,如果已存在重名文件会被覆盖。
- 执行bcecmd bos cp /tmp/file bos:/bucket/prefix[/] -r命令时,本地为文件时会退化为单文件上传,bos路径结尾为”/”时prefix会当做目录,新文件保存在prefix下一级;结尾不为"/"时会当做object名直接上传。
- 执行bcecmd bos cp /tmp/dir/ bos:/bucket/prefix[/] -r命令时,本地为目录时bos路径结尾不论是否有”/”都会以prefix为目录名在bos端新建目录; 并将dir中Object全部拷贝到prefix目录下。
- 执行批量上传时,local-path只能是本地目录且以"/"结尾,bos-path必须为bucket/prefix。
- 上传Object过程中可以通过storage-class参数指定Object的存储类型,storage-class默认为
STANDARD
即标准存储,storage-class为STANDARD_IA
、COLD
时表示存储为低频存储、冷存储。如果storage-class输入参数错误依旧会按照STANDARD
进行存储,不会提示错误信息。 - --disable-bar:禁止使用进度条。
示例:
-
同步当前目录下的sample目录到bos:/bce-test/test下
操作示例:
bcecmd bos sync ./sample/ bos:/bce-test/test
返回示例:
Plain Text1 Upload: sample/BOS_Batch_Delete.png to bos:/bce-test/test/BOS_Batch_Delete.png 2 Upload: sample/sample.log to bos:/bce-test/test/sample.log 3
-
列出会执行的同步操作但不执行
操作示例:
bcecmd bos sync ./sample/ bos:/bce-test/test --dryrun
返回示例:
Plain Text1 Upload: sample/BOS_DataImport.png to bos:/bce-test/test/BOS_DataImport.png
-
同步上传但不输出任何中间过程
操作示例:
bcecmd bos sync ./sample/ bos:/bce-test/test --quiet
返回示例: 无返回
-
同步sample目录到bos:/bce-test/test上且删除BOS有而本地没有的文件
操作示例:
bcecmd bos sync ./sample/ bos:/bce-test/test --delete
返回示例:
Plain Text1 Delete object: bos:/bce-test/test/sample.log
-
同步sample目录到bos:/bce-test/test上并存储为低频存储类型
操作示例:
bcecmd bos sync ./sample/ bos:/bce-test/test --storage-class STANDARD_IA
返回示例:
Plain Text1 Upload: sample/BOS_DataImport.png to bos:/bce-test/test/BOS_DataImport.png
-
同步sample目录到bos:/bce-test/test上并存储为冷存储类型
操作示例:
bcecmd bos sync ./sample/ bos:/bce-test/test --storage-class COLD
返回示例:
Plain Text1 Upload: sample/BOS_DataImport.png to bos:/bce-test/test/BOS_DataImport.png
-
单文件上传
操作示例:
Plain Text1 $ bcecmd bos cp text.txt bos:/mybucket/test.txt
返回示例:
Plain Text1 Upload: test.txt to bos:/mybucket/test.txt
-
批量上传
操作示例:
Plain Text1 $ bcecmd bos cp ./temp/ bos:/bce-test -r
返回示例:
Plain Text1 Upload: /home/users/username/temp/BAE.png to bos:/bce-test/BAE.png 2 Upload: /home/users/username/tem/CreatePolicy.png to bos:/bce-test/CreatePolicy.png 3 Upload: /home/users/username/tem/BAE_Pro.png to bos:/bce-test/BAE_Pro.png 4 Upload: /home/users/username/tem/BCD.png to bos:/bce-test/BCD.png 5 Upload: /home/users/username/tem/04Eng.png to bos:/bce-test/04Eng.png 6 [5] object uploaded.
-
上传Object并存储为低频存储类型
操作示例:
Plain Text1 $ bcecmd bos cp text.txt bos:/mybucket/test.txt --storage-class STANDARD_IA
返回示例:
Plain Text1 Upload: test.txt to bos:/mybucket/test.txt
-
上传Object并存储为冷存储类型
操作示例:
Plain Text1 $ bcecmd bos cp text.txt bos:/mybucket/test.txt --storage-class COLD
返回示例:
Plain Text1 Upload: test.txt to bos:/mybucket/test.txt
Object下载
描述: BOS CMD支持同步下载、单个文件下载和批量文件下载。
同步下载默认支持批量操作,可以将BOS同步到本地目录。如果本地已经有同名文件,且本地文件修改时间晚于BOS上的同名文件,同步下载会忽略这些文件,只同步新文件或有改动的文件。
sync命令会同时列举本地和BOS侧文件, 对于不同情况分别执行以下动作:
- 对于新增的文件(BOS的某个文件本地没有):下载
- 对于已下载但是有改动的文件(BOS侧文件的创建时间晚于本地文件的更新时间, 或者BOS侧文件的大小跟本地不一致):覆盖下载
- 对于已下载且没改动的文件:跳过不处理
- 对于已下载但是BOS侧没有的文件:根据--delete参数来做不同的处理。
- 下载进度信息保存在
--conf-path
指定目录下的task_progress
子目录下的文件中,文件名为PID-yyyy-mm-ddTHH:MM:SS
,如:10516-2025-06-13T16:11:27
命令格式:
-
同步下载Object:
$ bcecmd bos sync <bos-dir> <local-dir> [--exclude EXCLUDE] [--include INCLUDE] [--delete] [--exclude-delete EXCLUDE-DELETE] [--dryrun] [--yes] [--quiet] [--sync-type SYNC-TYPE] [--download-tmp-path DOWNLOAD-TMP-PATH] [--concurrency CONCURRENCY] [--restart] [--rand]
说明:
- 同步下载中,local-dir和bos-dir必须为目录,不能为单个文件。
- --exclude:执行bos到本地的sync的时候, 需要跳过的文件, 支持通配符
*
和多项配置, 如要跳过bucket sample下tmp文件和所有目录下的svn目录:--exclude 'bos:/sample/*.tmp' --exclude 'bos:/sample/*/.svn/*'
- --include:执行bos到本地的sync的时候, 只同步指定文件, 支持通配符
*
和多项配置, 如只同步bucket sample下的log文件和html文件:--include 'bos:/sample/*.log' --include 'bos:/sample/*.html'
- --delete:删除本地有而BOS没有的文件,使本地和BOS的数据完全一致。执行后默认会提示用户是否要执行删除。
- --exclude-delete:此选项需要同
--delete
一起使用,用于在删除在目的端存在而在源端不存在的文件时排除目的端特定文件或目录,具体用法请参考--exclude
的使用规则。 - --dryrun:列出会执行的操作但不实际执行。
- --yes:执行删除动作时不需要确认直接删除。
- --quiet:同步下载但不输出任何中间过程。
-
--sync-type: 同步类型可以为
time-size
,time-size-crc32
,only-crc32
和force-overwrite
, 默认为time-size
。 bcecmd 执行 sync 时首先会判断要同步的文件在目的端是否存在,如果不存在就会上传或者下载文件, 当源端和目的端都存在时, 就会根据同步类型来决定是否需要同步文件。time-size
: 比较源端和目的端文件的修改日期和大小来判断是否同步,当源端文件的修改日期早于目的端文件时,不会同步文件;当源端文件的修改日期等于目的端文件的修改日期,且它们的大小相同时不同步文件, 否则同步;time-size-crc32
: bcecmd 先使用time-size
模式判断是否需要同步文件, 当time-size
输出结果为需要同步文件时, bcecmd 将比较源端和目的端文件的 crc32, 当crc32的值不同时才会同步文件;only-crc32
: bcecmd 只会比较源端和目的端文件的crc32, 如果不同就会同步文件。force-overwrite
: 当遇到源端与目的端同名文件,bcecmd 将强制用源端文件覆盖目的端文件。
- --download-tmp-path:用于手动指定断点下载时用于保存临时文件的目录, 如果不指定, 默认使用执行命令时所在目录。
- --concurrency: 用于设置 sync 命令并发上传下载的文件数,默认为10。
- --restart: 忽略断点续传,重头开始上传文件。
- --rand: 随机下载bos文件到本地。
注意
- 当--delete 与过滤(include 或exclude)同时使用时,如果一个文件被过滤,尽管它同时存在于源端和目的端, 它也会被删除。因为bcecmd只会比较未被过滤的文件。
- 需要注意 BOS 在2018年1月之后才全面支持CRC32, 所以当 bcecmd sync-type 选择为
time-size-crc32
或only-crc32
时,如果bcecmd 未能从BOS获取到 object 的 CRC32信息时, bcecmd 将总是会同步这些文件。
- 下载单个Object:
$ bcecmd bos cp <bos-path> <local-path> [--restart] [--storage-class STORAGE-CLASS] [--download-tmp-path DOWNLOAD-TMP-PATH] [--quiet] [--yes] [--disable-bar]
-
批量下载Object:
$ bcecmd bos cp <bos-path> <local-path> --recursive [--restart] [--storage-class STORAGE-CLASS] [--download-tmp-path DOWNLOAD-TMP-PATH] [--quiet] [--yes] [--disable-bar]
说明:
- 执行bcecmd bos cp bos:/bucket/file /tmp/file命令时,本地文件名可以任意指定,若本地文件存在会提示是否覆盖。
- 执行bcecmd bos cp bos:/bucket/file /tmp/命令时,本地文件名会自动存为bos端文件名,若存在会提示是否覆盖。
- 执行bcecmd bos cp bos:/bucket/file /tmp/ -r命令时,bos端为文件时会退化为单个文件下载,若存在会提示是否覆盖。
- 执行bcecmd bos cp bos:/bucket/prefix/ /tmp/ -r命令时,本地路径如果为一个已存在的文件会报错,本地目录不存在时会创建。
- 执行批量下载时,local-path只能是本地目录,bos-path必须为bucket/prefix。如果bos路径为Object,则为单个Object下载。
- --restart: 忽略断点续传,重头开始下载文件。
- --storage-class:下载时不管是否指定参数storage-class,都不影响下载,该参数会被自动忽略,不起作用。
- --download-tmp-path:用于手动指定断点下载时用于保存临时文件的目录, 如果不指定, 默认使用执行命令时所在目录。
- --quiet:同步下载但不输出任何中间过程。
- --yes:执行删除动作时不需要确认直接删除。
- --disable-bar: 不显示进度条。
示例:
-
同步下载bos:/mybucket/pre/下文件到当前目录下的temp目录
操作示例:
Plain Text1 $ bcecmd bos sync bos:/mybucket/pre/ ./temp/
返回示例:
Plain Text1 Download: bos:/mybucket/pre/sts1.png to /home/users/username/temp/sts1.png 2 Download: bos:/mybucket/pre/sts2.png to /home/users/username/temp/sts2.png 3 Sync done: bos:/mybucket/pre/ to ./temp/, [2] success [0] failure
-
下载Object
操作示例:
Plain Text1 $ bcecmd bos cp bos:/mybucket/test.txt text.txt
返回示例:
Plain Text1 Download: bos:/mybucket/test.txt to test.txt
-
批量下载Object
操作示例:
Plain Text1 $ bcecmd bos cp bos:/mybucket/pre/ temp -r
返回示例:
Plain Text1 Download: bos:/mybucket/pre/sts1.png to /home/users/username/tmp/sts1.png 2 Download: bos:/mybucket/pre/sts2.png to /home/users/username/tmp/sts2.png 3 [2] objects downloaded.
拷贝Object
描述: BOS CMD支持在bucket间拷贝文件,支持同步拷贝、单个文件拷贝和批量文件拷贝。
同步拷贝默认支持批量操作,如果目的Bucket已经有同名文件,同步拷贝会忽略这些文件,只同步新文件或有改动的文件。
sync命令会同时列举源Bucket和目的Bucket的文件, 对于不同情况分别执行以下动作:
- 对于新增的文件(源Bucket的某个文件目的Bucket没有):拷贝
- 对于已拷贝但是有改动的文件(源Bucket文件的创建时间晚于目的Bucket文件的更新时间, 或者源Bucket侧文件的大小跟目的Bucket不一致):覆盖拷贝
- 对于已拷贝且没改动的文件:跳过不处理
- 对于已拷贝但是源Bucket没有的文件:根据--delete参数来做不同的处理。
- 拷贝进度信息保存在
--conf-path
指定目录下的task_progress
子目录下的文件中,文件名为PID-yyyy-mm-ddTHH:MM:SS
,如:10516-2025-06-13T16:11:27
命令格式:
-
同步拷贝Object:
$ bcecmd bos sync <bos-dir> <bos-dir> [--exclude EXCLUDE] [--include INCLUDE] [--delete] [--exclude-delete EXCLUDE-DELETE] [--dryrun] [--yes] [--quiet] [--storage-class STORAGE-CLASS] [--sync-type SYNC-TYPE] [--concurrency CONCURRENCY] [--restart]
说明:
- 同步拷贝中,bos-dir必须为目录,不能为单个文件。
- --exclude:执行bos到bos的sync的时候, 需要跳过的文件, 支持通配符
*
和多项配置, 如要跳过bucket source下tmp文件和所有目录下的svn目录:--exclude 'bos:/source/*.tmp' --exclude 'bos:/source/*/.svn/*'
- --include:执行bos到bos的sync的时候, 只同步指定文件, 支持通配符
*
和多项配置, 如只同步bucket source下的log文件和html文件:--include 'bos:/source/*.log' --include 'bos:/source/*.html'
- --delete:删除源Bucket有而目的Bucket没有的文件,使源和目的Bucket的数据完全一致。执行后默认会提示用户是否要执行删除。
- --exclude-delete:此选项需要同
--delete
一起使用,用于在删除在目的端存在而在源端不存在的文件时排除目的端特定文件或目录,具体用法请参考--exclude
的使用规则。 - --dryrun:列出会执行的操作但不实际执行。
- --yes:执行删除动作时不需要确认直接删除。
- --quiet:同步上传但不输出任何中间过程。
- --storage-class [STORAGE_CLASS]:通过storage-class参数指定同步上传的Object 的存储类型。指定storage-class为
STANDARD_IA
、COLD
时表示存储为低频存储、冷存储,指定的storage-class为STANDARD
或者不指定storage-class时为标准存储。 -
--sync-type: 同步类型可以为
time-size
,time-size-crc32
,only-crc32
和force-overwrite
, 默认为time-size
。 bcecmd 执行 sync 时首先会判断要同步的文件在目的端是否存在,如果不存在就会同步文件, 当源端和目的端都存在时, 就会根据同步类型来决定是否需要同步文件。time-size
: 比较源端和目的端文件的修改日期和大小来判断是否同步,当源端文件的修改日期早于目的端文件时,不会同步文件;当源端文件的修改日期等于目的端文件的修改日期,且它们的大小相同时不同步文件, 否则同步;time-size-crc32
: bcecmd 先使用time-size
模式判断是否需要同步文件, 当time-size
输出结果为需要同步文件时, bcecmd 将比较源端和目的端文件的 crc32, 当crc32的值不同时才会同步文件;only-crc32
: bcecmd 只会比较源端和目的端文件的crc32, 如果不同就会同步文件。force-overwrite
: 当遇到源端与目的端同名文件,bcecmd 将强制用源端文件覆盖目的端文件。
- --concurrency: 用于设置 sync 命令并发拷贝的文件数。
- --restart: 忽略断点续传,重头开始拷贝文件。
注意
- 当--delete 与过滤(include 或exclude)同时使用时,如果一个文件被过滤,尽管它同时存在于源端和目的端,它也会被删除。因为bcecmd只会比较未被过滤的文件。
- 需要注意 BOS 在2018年1月之后才全面支持CRC32, 所以当 bcecmd sync-type 选择为
time-size-crc32
或only-crc32
时,如果bcecmd 未能从BOS获取到 object 的 CRC32信息时, bcecmd 将总是会同步这些文件。
- 拷贝单个Object:
$ bcecmd bos cp <bos-path> <bos-path> [--restart] [--storage-class STORAGE-CLASS] [--quiet] [--yes] [--disable-bar]
-
批量拷贝Object:
$ bcecmd bos cp <bos-path> <bos-path> --recursive [--restart] [--storage-class STORAGE-CLASS] [--quiet] [--yes] [--disable-bar]
说明:
- 执行bcecmd bos cp bos:/bucket/obj1 bos:/bucket/obj2命令时,复制的两个路径相同时会报错,目的路径若已存在会被覆盖。
- 执行bcecmd bos cp bos:/bucket/obj1 bos:/bucket/prefix/命令时,obj1会被拷贝到prefix目录下,目的路径必须以“/”结尾,否则会当做一个新文件名新建一个文件。
- 执行bcecmd bos cp bos:/bucket/obj1 bos:/bucket/prefix/ -r命令时,源路径为单个文件时退化为单个文件拷贝,obj1会被拷贝到prefix目录下。
- 执行bcecmd bos cp bos:/bucket/prefix1/ bos:/bucket/prefix2/ -r命令,实现目录到目录的拷贝,两个路径都必须以“/”的结尾;若目的路径结尾不以“/”结尾会当做单个文件从而报错。
- 执行批量拷贝时,bos-path必须为bucket/prefix。
- 用户必须具备对源bucket的读权限和目标bucket的写权限。
示例:
-
同步拷贝bos:/mybucket/pre/下文件到bos:/mybucket2/pre/
操作示例:
Plain Text1 $ bcecmd bos sync bos:/mybucket/pre/ bos:/mybucket2/pre/
返回示例:
Plain Text1 [-----------------------------------------------------] 100.00% 2.52 MiB p/s 3s 2 Sync done: bos:/mybucket/pre/ to bos:/mybucket2/pre/, [2] success [0] failure
-
拷贝单个Object
操作示例:
Plain Text1 $ bcecmd bos cp bos:/mybucket/test.txt bos:/mybucket2/test.txt
返回示例:
Plain Text1 Copy: bos:/mybucket/test.txt to bos:/mybucket2/test.txt
-
批量拷贝Object
操作示例:
Plain Text1 $ bcecmd bos cp bos:/mybucket/pre1/ bos:/bce-test/pre/ -r
返回示例:
Plain Text1 [----------------------------------------------------] 100.00% 45.86 MiB p/s 0s 2 [2] objects remote copied.
罗列Object
描述: ls
命令可以列出一个Bucket内的不超过1000条Objects,可以通过指定Prefix来过滤结果。ls
会自动以/作为delimiter来达到模拟文件夹的效果。
命令格式: $ bcecmd bos ls bos:/<bucket-name>/[prefix]
操作示例: bcecmd bos ls bos:/mybucket/web
返回示例:
1 PRE pre/
22016-04-01 16:43:01 8698 STANDARD web_bos.png
32016-04-01 16:41:49 17188 STANDARD web_server_bos.png
42016-04-01 16:43:53 24620 STANDARD_IA webtobos_cors.png
52016-04-01 16:45:53 24623 COLD cold_abc.png
说明
- -a, --all:超过1000个Object时会全部显示出来。
- -r, --recursive:不显示目录,直接显示下面的Object。
- -s, --summerize:显示个数以及总大小等统计信息。
- 示例输出第一列代表Object的创建日期,第二列代表创建时间,第三列代表Object的大小(以Byte为单位),第四列表示Object的存储类型,第五列表示Object的名称。
- pre/表示为文件夹,不会显示创建时间及大小信息。
获取Object的URL
描述: gen_signed_url
命令可以获取指定Object的URL,根据提供的URL可以下载Object。
命令格式 $ bcecmd bos gen_signed_url bos:/<bucket-name>/<object-key> [-eTIME]
说明:
- 获取的URL地址输入浏览器中可以直接下载Object。生成URL前,需要确认配置的AK/SK与Bucket对应账户的AK/SK一致,否则生成的URL无效不能正常下载Object。
- -e: 指定URL过期时间(单位秒),值必须大于等于-1,其中-1表示URL永久有效。
- 不指定过期时间时默认过期时间为1800秒。
注意: 参数-e 与过期时间之前不能有空格。
示例:
-
不指定过期时间
操作示例:
Plain Text1 $ bcecmd bos gen_signed_url bos:/bce-test/test/BOS_DataImport.png
返回示例:
Plain Text1 http://bj.bcebos.com/bce-test/test/BOS_DataImport.png?authorization=bce-auth-v1%2Fd35a0b8750114e49b3567e0b0542c2f1%2F2016-08-25T02%3A03%3A57Z%2F1800%2F%2F96d77180ec2cb7e8de522c15ca42bf67c30bae0edb47bad495fe8e7953794a4f
-
指定过期时间为100秒
操作示例:
Plain Text1 $ bcecmd bos gen_signed_url bos:/bce-test/test/BOS_DataImport.png -e100
返回示例:
Plain Text1 http://bj.bcebos.com/bce-test/test/BOS_DataImport.png?authorization=bce-auth-v1%2F637986f41b0046248e3a333817371502%2F2017-08-31T03%3A19%3A42Z%2F100%2F%2F3e77accca7f0206460c662b0a9596b7ec353599214d42b124bb797a48da7359a
-
指定URL永久有效
操作示例:
Plain Text1 $ bcecmd bos gen_signed_url bos:/bce-test/test/BOS_DataImport.png -e-1
返回示例:
Plain Text1 http://bj.bcebos.com/bce-test/test/BOS_DataImport.png?authorization=bce-auth-v1%2F637986f41b0046248e3a333817371502%2F2017-08-31T03%3A19%3A42Z%2F-12F%2F3e77accca7f0206460c662b0a9596b7ec353599214d42b124bb797a48da7359a
删除Object
命令格式:
- 删除单个Object:
$ bcecmd bos rm [-y, --yes] bos:/<bucket-name>/<object-key>
- 批量删除Object:
$ bcecmd bos rm [-y, --yes] [-r, --recursive] bos:/<bucket-name>/<prefix>
说明:
- -y, --yes: 使用该选项时跳过确认步骤。
- -r, --recursive:批量删除object。
示例:
-
删除单个Object
操作示例:
Plain Text1 $ bcecmd bos rm bos:/bce-temp/s1.png
返回示例:
Plain Text1 Do you really want to REMOVE object bos:/bce-temp/s1.png? (Y/N) **Y** 2 Delete object: bos:/bce-temp/s1.png
-
批量删除Object
操作示例:
Plain Text1 $ bcecmd bos rm bos:/bce-test/pre/ -r
返回示例:
Plain Text1 Delete object: bos:/bce-test/pre/s1.png 2 Delete object: bos:/bce-test/pre/s2.png 3 [2] objects removed on remote.
取回object
描述: restore
命令用于取回指定object,支持批量取回。
命令格式:
$ bcecmd bos restore bos://${bucket-name}/{object-key} --restore-tier STANDARD --restore-days 7 -r
说明:
- --bucket-name: bucket名称
- --object-key:要取回的object名称
- --restore-tier:解冻优先级。Expedited:加急取回,表示30min内完成取回。
Standard:标准取回,表示2~5小时内完成取回。LowCost:延缓取回,表示12小时内完成取回。- --restore-days:表示解冻后状态的持续时间,要求是数字,单位是天,取值大于0且不超过30即可。默认解冻持续天数是7天,最长30天。
- -r: 当object-key为文件夹时,需添加-r参数,批量取回该前缀下的所有object
示例:
操作示例:
1$ bcecmd bos restore bos://testbucket/testobject