Get-S3Object返回keyprefix(文件夹)本身?

时间:2016-11-07 20:54:51

标签: amazon-web-services amazon-s3 aws-sdk

我正在使用S3 Powershell api(Get-S3Object)从S3检索文件,事实是api以一种奇怪的方式工作。

我首先运行以下命令:

 Get-S3Object -BucketName "tools-bucket" -keyprefix "Rollback/ust1twastool01a"

返回此列表:

ETag         : "d41d8cd98f00b204e9800998ecf8427e"
Key          : Rollback/ust1twastool01a/
LastModified : 11/7/2016 3:24:13 PM
Owner        : Amazon.S3.Model.Owner
Size         : 0
StorageClass : STANDARD

ETag         : "e0ada177422c1fe4d9bd9801636f4e8a"
Key          : Rollback/ust1twastool01a/Rollback_Kit.txt
LastModified : 11/7/2016 3:25:00 PM
Owner        : Amazon.S3.Model.Owner
Size         : 626
StorageClass : STANDARD

第一个是keyprefix本身,它是一个文件夹。然后我用另一个keyprefix运行命令:

Get-S3Object -BucketName "tools-bucket" -keyprefix "Rollback/autopatch"

它返回:

ETag         : "4c3723148b9fb78d5b182c72aa6f1866-62"
Key          : Rollback/autopatch/2016-08-30_21-15-17_server-1.1.20558_client-1.1.20518.zip
LastModified : 8/30/2016 5:18:43 PM
Owner        : Amazon.S3.Model.Owner
Size         : 323772907
StorageClass : STANDARD

ETag         : "bfc65b2cde2c3f24a2086ca503270a54"
Key          : Rollback/autopatch/buildRecords.txt
LastModified : 8/30/2016 5:19:44 PM
Owner        : Amazon.S3.Model.Owner
Size         : 53
StorageClass : STANDARD

这次,不会返回keyprefix。我不太明白为什么会发生这种情况

1 个答案:

答案 0 :(得分:0)

这通常在控制台中创建文件夹时发生。他们是占位符。除非您需要手动导入“文件夹”以上载对象,否则不需要它们。您的解决方法是跳过以/结尾的零字节对象的对象。

http://docs.aws.amazon.com/AmazonS3/latest/UG/about-using-console.html#welcome-folder-concept