【发布时间】:2015-06-02 02:51:14
【问题描述】:
我面临一个问题,AWSSDKs ListObjects 仅返回“顶级文件夹”的键(我知道存储桶中没有文件夹之类的东西)。 在我的存储桶中,我以不同的分辨率存储图像。存储桶中的“文件夹结构”如下所示:
年/月/分辨率/此分辨率中的文件 (上传时的图片)
如果要更新原始图像,则应删除所有较小分辨率的图像。因此,我想获取存储桶中所有图像的出现。我使用以下代码 sn-p 来执行此操作,并且对于顶级键它可以正常工作。
using (IAmazonS3 amazonS3Client = Amazon.AWSClientFactory.CreateAmazonS3Client(AWSAccessKey, AWSSecretKey, Amazon.RegionEndpoint.EUWest1))
{
ListObjectsRequest S3ListObjectRequest = new ListObjectsRequest();
S3ListObjectRequest.BucketName = "my_bucket";
S3ListObjectRequest.Delimiter = "LL.jpg";
ListObjectsResponse listObjectRequest = amazonS3Client.ListObjects(S3ListObjectRequest);
foreach (string S3BucketDir in listObjectRequest.CommonPrefixes)
{
//delete image
}
}
对于 LL.jpg,我得到以下 CommonPrefixes:
- 2014/07/T120x120/LL.jpg
- 2014/07/T160x160/LL.jpg
- 2014/07/T320x320/LL.jpg
- 2014/07/T640x640/LL.jpg
- 2014/07/T76x76/LL.jpg
- 2014/07/T80x80/LL.jpg
但是对于 orp.jpg 我应该得到:
- 2015/05/T120x120/orp.jpg
- 2015/05/T160x160/orp.jpg
- 2015/05/T640x640/orp.jpg
但是每次都是空的。
如果我设置前缀
S3ListObjectRequest.Prefix = "2015/05";
返回 3 个 CommonPrefixes。 (如果我只使用 '2015' 作为前缀,它也是空的,因为 ListObjects 只在 2015/01 搜索)
感谢您的帮助。
【问题讨论】:
标签: amazon-web-services amazon-s3