我使用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本身,它是一个文件夹。然后我用另一个键前缀运行命令:
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
这次,不返回密钥前缀。我不太明白为什么会这样
这通常发生在您在控制台中创建文件夹时。他们占位符。它们是不需要的,除非你需要手动导航"进入"一个文件夹来上传对象。你的解决方法是跳过以零字节对象/
结尾的对象。
http://docs.aws.amazon.com/AmazonS3/latest/UG/about-using-console.html welcome-folder-concept