我正在使用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。我不太明白为什么会发生这种情况
答案 0 :(得分:0)
这通常在控制台中创建文件夹时发生。他们是占位符。除非您需要手动导入“文件夹”以上载对象,否则不需要它们。您的解决方法是跳过以/
结尾的零字节对象的对象。
http://docs.aws.amazon.com/AmazonS3/latest/UG/about-using-console.html#welcome-folder-concept