ls(列举存储空间、对象或分片)

当需要对账号下的OSS资源进行查询并管理时,例如查询并删除占用空间比较大的文件,可以通过ls命令列举当前账号下的存储空间(Bucket)、对象(Object)和碎片(Part)信息。

注意事项

  • ossutil 1.6.16版本开始,命令行中Binary名称支持直接使用ossutil,无需根据系统刷新Binary名称。如果ossutil版本低于1.6.16,则需要根据系统刷新Binary名称。更多信息,请参见命令行工具ossutil命令参考

  • 当在OSS ON云盒中使用该命令时:

    1. 将配置文件中的Endpoint替换为云盒Endpoint。更多信息,请参见云盒Endpoint

    2. 在本文已有示例的基础上添加--sign-version--region以及--cloudbox-id选项。关于这三个选项的具体用法,请参见通用选项

权限说明

阿里云账号默认拥有全部权限。阿里云账号下的RAM用户或RAM角色默认没有任何权限,需要阿里云账号或账号管理员通过RAM PolicyBucket Policy授予操作权限。

API Action

说明

oss:ListBuckets

执行ls命令列举账号下Bucket所必需的权限。

oss:ListObjects

执行ls命令列举指定BucketObject所必需的权限。

oss:ListObjectVersions

可选。在指定--all-versions选项时,列举Object所有版本所需的权限。

oss:ListMultipartUploads

可选。可选。列举未完成或已中止的分片上传任务所需的权限。

oss:ListParts

可选。列举分片所需的权限。

命令格式

ossutil ls cloud_url [options]

参数说明

参数

说明

cloud_url

指定要操作的资源,格式为oss://[bucket_name[/prefix]]

  • 省略时,列举当前账号下有权访问的所有Bucket。

  • 指定oss://bucket_name时,递归列举该Bucket下的所有Object。

  • 指定oss://bucket_name/prefix时,递归列举该Bucket下所有匹配指定前缀的Object。

-s, --short-format

以精简格式输出,结果仅包含资源名称。

-d, --directory

非递归列举。仅列举当前路径下的Object和一级子目录(以/结尾的公共前缀)。

-m, --multipart

列举指定Bucket下所有尚未完成或中止的分片上传任务(Multipart Uploads)。
注意:未完成的分片会持续占用存储空间并产生费用,建议定期检查并清理。

-a, --all-type

列举所有类型的资源,包括Object和未完成的分片。

--limited-num

设定单次请求返回结果的最大数量,可用于分页。当BucketObject数量巨大时,建议与--marker选项配合使用以实现分页,避免因单次列举数量过多导致请求超时。

--marker

从指定标记(marker)之后的位置列举。当BucketObject数量较多时,建议与--limited-num选项配合使用以实现分页。

--upload-id-marker

从指定的UploadID之后继续列举未完成的分片上传任务。

--payer

指定由请求者支付访问费用。将此选项的值设置为requester后,访问指定路径下资源产生的流量、请求次数等费用均由请求者支付。

--include

列举符合指定通配符格式的Object。更多信息,请参见includeexclude选项

--exclude

列举不符合指定通配符格式的Object。更多信息,请参见includeexclude选项

--all-versions

列举Object的所有历史版本。此选项仅对已开启版本控制的Bucket生效。

--version-id-marker

从指定的版本ID(version-id)之后继续列举Object的历史版本。此选项仅对已开启版本控制的Bucket生效。

关于此命令的其他通用选项,请参见通用选项

输出结果

列举Object返回结果中的ETag值可用于校验对象内容的完整性。

  • 对于通过PutObject方式创建的Object,其ETag是对象内容的MD5值。

  • 对于通过分片上传(Multipart Upload)等方式创建的Object,其ETag是一个唯一标识,但不是对象内容的MD5值。

使用示例

列举所有Bucket

不带任何参数执行ls命令,可以列举当前账号下有权访问的所有Bucket。

ossutil ls

ossutil ls oss://

输出结果:

2016-10-21 16:18:37 +0800 CST       oss-cn-hangzhou         Archive    oss://examplebucketA
2016-12-01 15:06:21 +0800 CST       oss-cn-hangzhou        Standard    oss://examplebucketB
2016-07-20 10:36:24 +0800 CST       oss-cn-hangzhou              IA    oss://examplebucketC
2016-10-21 17:31:27 +0800 CST       oss-cn-hangzhou         Archive    oss://examplebucketD
Bucket Number is:4
0.252174(s) elapsed  

以精简模式列举Bucket

ossutil ls -s

输出结果:

oss://examplebucketA
oss://examplebucketB
oss://examplebucketC
oss://examplebucketD
Bucket Number is:4
0.235104(s) elapsed  

分页列举Bucket

Bucket内对象数量过多时,可通过 --limited-num 和 --marker 选项分页列举。

列举字母序排在指定markerexamplebucketA之后的Bucket。

ossutil ls  --limited-num=2 -s --marker examplebucketA

输出结果:

2016-12-01 15:06:21 +0800 CST       oss-cn-hangzhou        Standard    oss://examplebucketB
2016-07-20 10:36:24 +0800 CST       oss-cn-hangzhou              IA    oss://examplebucketC
Bucket Number is:2
0.132174(s) elapsed                        

列举指定Bucket下所有Object

列举examplebucket内所有Object。

ossutil ls oss://examplebucket

输出结果:

LastModifiedTime                    Size(B)  StorageClass   ETag                                    ObjectName
2020-12-01 15:06:37 +0800 CST           114      Standard   61DE142E5AFF9A6748707D4A77BFBCFB        oss://examplebucket/example.txt
2020-12-01 15:06:42 +0800 CST        363812      Standard   E7581E5D2EBC56ECCB6FB6050B4C6545        oss://examplebucket/examplefolder/photo.jpg
2020-12-01 15:06:45 +0800 CST      57374182      Standard   BE97B7AD7A2C1277B11221E5C9537544        oss://examplebucket/video.mp4
Object Number is:3
0.007379(s) elapsed                 

其中,ETag值用于标识一个Object的内容。对于通过PutObject请求创建的Object,ETag值是其内容的MD5值;对于通过其他方式创建的Object,ETag值是基于一定计算规则生成的唯一值,但不是其内容的MD5值。

列举指定目录(前缀)下的Object

列举examplebucket内前缀为exampleObject。

ossutil ls oss://examplebucket/example

输出结果:

LastModifiedTime                    Size(B)  StorageClass   ETag                                     ObjectName
2020-12-01 15:06:37 +0800 CST           114      Standard   61DE142E5AFF9A6748707D4A77BFBCFB        oss://examplebucket/example.txt
2020-12-01 15:06:42 +0800 CST        363812      Standard   E7581E5D2EBC56ECCB6FB6050B4C6545        oss://examplebucket/examplefolder/photo.jpg
Object Number is:2
0.007379(s) elapsed                 

列举指定后缀Object

使用--include选项可以列举examplebucket下后缀名为.mp4的文件。

ossutil ls oss://examplebucket --include *.mp4

输出结果:

LastModifiedTime                    Size(B)  StorageClass   ETag                                     ObjectName
2020-12-01 15:06:45 +0800 CST      57374182      Standard   BE97B7AD7A2C1277B11221E5C9537544        oss://examplebucket/video.mp4
Object Number is:1
0.007379(s) elapsed                 

非递归列举Object和一级子目录

使用-d选项可以仅列举examplebucket根目录下的对象和一级子目录,不递归显示子目录下的内容。

ossutil ls oss://examplebucket -d

输出结果:

oss://examplebucket/example.txt
oss://examplebucket/examplefolder/
oss://examplebucket/video.mp4
Object and Directory Number is: 3
0.278(s) elapsed

列举所有Object的所有版本

对于已开启版本控制的Bucket,使用--all-versions选项可以列举Bucket下所有Object的所有版本。

ossutil ls oss://examplebucket --all-versions

输出结果:

LastModifiedTime                   Size(B)  StorageClass   ETag                                   VERSIONID                                                           IS-LATEST   DELETE-MARKER   ObjectName
2020-12-01 15:06:37 +0800 CST         114      Standard   61DE142E5AFF9A6748707D4A77BFBCFB      CAEQARiBgICUsOuR2hYiIDI3NWVjNmEyYmM0NTRkZWNiMTkxY2VjMDMwZjFlMDA3    true        false           oss://examplebucket/example.txt
2020-06-11 11:03:37 +0800 CST      363812      Standard   E7581E5D2EBC56ECCB6FB6050B4C6545      CAEQARiBgIDZtvuR2hYiIDNhYjRkN2M5NTA5OTRlN2Q4YTYzODQwMzQ4NDYwZDdm    true        false           oss://examplebucket/examplefolder/photo.jpg
2021-01-26 13:27:08 +0800 CST           0                                                       CAEQLxiBgIDd7NH0uRciIDA3Yzg0MTZjOWNlYzQ4ODZhMzVkZWE0MmE2NzBlYTYx    true        true            oss://examplebucket/image.png
2020-12-01 15:06:45 +0800 CST    57374182      Standard   BE97B7AD7A2C1277B11221E5C9537544      CAEQLBiBgMDZiprwthciIDY2NGM0NTNmZDE3ODRmZmVhZGM4YTUwZGQyNGU3ZjQ3    true        false           oss://examplebucket/video.mp4
2016-06-11 10:53:46 +0800 CST      118076      Standard   FFDB300F053AAF06F4C4C58A4869C427      CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk    false       false           oss://examplebucket/example.txt
2016-06-11 11:02:05 +0800 CST      345374      Standard   078A9852BCF81DC4811E6EDCBFD121BE      CAEQARiBgICNz_iR2hYiIGJjZTBjNDQxYWRhNTQ2ZTNiNmMzYzQ1YzMzMDA5ZjUw    false       false           oss://examplebucket/examplefolder/photo.jpg
Object Number is: 6

0.692000(s) elapsed

列举指定Object的所有版本

对于已开启版本控制的Bucket,使用--all-versions选项可以列举example.txt的所有历史版本。

ossutil ls oss://examplebucket/example.txt --all-versions

输出结果:

LastModifiedTime                   Size(B)  StorageClass  ETag                                   VERSIONID                                                           IS-LATEST   DELETE-MARKER  ObjectName
2020-12-01 15:06:37 +0800 CST         114      Standard   61DE142E5AFF9A6748707D4A77BFBCFB      CAEQARiBgICUsOuR2hYiIDI3NWVjNmEyYmM0NTRkZWNiMTkxY2VjMDMwZjFlMDA3    true        false           oss://examplebucket/example.txt
2016-06-11 10:53:46 +0800 CST         114      Standard   61DE142E5AFF9A6748707D4A77BFBCFB      CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk    false       false           oss://examplebucket/example.txt
Object Number is: 2
0.361(s) elapsed

列举所有Part

使用-m选项可以列举examplebucket中所有因上传中断或失败而产生的未完成Part。这些任务会持续占用存储空间并产生费用,建议定期检查并清理。

ossutil ls oss://examplebucket -m

输出结果:

InitiatedTime                     UploadID                           ObjectName
2017-01-13 03:45:26 +0000 CST     15754AF7980C4DFB8193F190837520BB    oss://examplebucket/test.mp4
2017-01-20 11:16:21 +0800 CST     A20157A7B2FEC4670626DAE0F4C0073C    oss://examplebucket/object.exe
UploadId Number is: 2
0.191(s) elapsed

列举所有ObjectPart

使用-m选项可以列举examplebucket中的所有ObjectPart。

ossutil ls oss://examplebucket -a

输出结果:

LastModifiedTime                    Size(B)  StorageClass   ETag                                     ObjectName
2020-12-01 15:06:37 +0800 CST           114      Standard   61DE142E5AFF9A6748707D4A77BFBCFB        oss://examplebucket/example.txt
2020-12-01 15:06:42 +0800 CST        363812      Standard   E7581E5D2EBC56ECCB6FB6050B4C6545        oss://examplebucket/examplefolder/photo.jpg
2020-12-01 15:06:45 +0800 CST      57374182      Standard   BE97B7AD7A2C1277B11221E5C9537544        oss://examplebucket/video.mp4
Object Number is:3
InitiatedTime                     UploadID                           ObjectName
2017-01-13 03:45:26 +0000 CST     15754AF7980C4DFB8193F190837520BB    oss://examplebucket/test.mp4
2017-01-13 03:45:13 +0000 CST     2A1F9B4A95E341BD9285CC42BB950EE0    oss://examplebucket/test.mp4
2017-01-13 03:45:01 +0000 CST     3998971ACAF94AD9AC48EAC1988BE863    oss://examplebucket/test.mp4
2017-01-20 11:16:21 +0800 CST     A20157A7B2FEC4670626DAE0F4C0073C    oss://examplebucket/object.exe
UploadId Number is:4
0.791289(s) elapsed  

列举其他账号授权的资源

列举另一个阿里云账号下,华东1(杭州)名为testBucket内所有文件。

ossutil ls oss://test -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID  -k yourAccessKeySecret