我上传了4个对象到S3。对象键如下:为什么ListObjects将前缀作为数组中的单独对象返回?
4eec12eb0a588620cccad16f/MumDad70s.jpg
4eec12eb0a588620cccad16f/NathanI-1.jpg
4eec12eb0a588620cccad16f/ProfilePic.png
4eec12eb0a588620cccad16f/nathan-orange.jpg
我的代码,以请求的对象是:
var req = new ListObjectsRequest()
.WithBucketName(BucketName)
.WithPrefix(jobid + "/")
.WithDelimiter("/");
var objs = _s3Client.ListObjects(req);
在响应,即使前缀实际上不是它自己的目标,而是只是一个字符串前缀到实际对象的关键,我得到以下对象返回:
4eec12eb0a588620cccad16f/
4eec12eb0a588620cccad16f/MumDad70s.jpg
4eec12eb0a588620cccad16f/NathanI-1.jpg
4eec12eb0a588620cccad16f/ProfilePic.png
4eec12eb0a588620cccad16f/nathan-orange.jpg
为什么前缀被返回,就好像它是一个唯一的对象?我如何只是返回具有指定前缀的文件,而不必后过滤列表以摆脱前缀对象?
不是答案,而是解决方案 - 只需检查ListObjects上的getSize()是否大于0即可检测这些对象。我很想知道这个问题的真正答案,但... – 2012-03-02 03:41:30
仍在寻找一个很好的解决此问题的方法。 – Adi 2017-02-27 14:17:51