Почему ListObjects возвращает префикс как отдельный объект в массиве? - PullRequest
5 голосов
/ 19 декабря 2011

Я загрузил 4 объекта на S3. Ключи объекта следующие:

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);

В ответе, даже несмотря на то, что префикс на самом деле не является собственным объектом, а просто строкой, добавленной к ключу фактических объектов, я получаю следующие 5 объекты вернулся:

4eec12eb0a588620cccad16f/
4eec12eb0a588620cccad16f/MumDad70s.jpg
4eec12eb0a588620cccad16f/NathanI-1.jpg
4eec12eb0a588620cccad16f/ProfilePic.png
4eec12eb0a588620cccad16f/nathan-orange.jpg

Почему префикс возвращается так, как если бы он был уникальным объектом? Как мне просто вернуть файлы с указанным префиксом без необходимости постфильтровать список, чтобы избавиться от объекта префикса?

1 Ответ

3 голосов
/ 08 марта 2012

Как здесь (и да, я понимаю, вы, вероятно, не запрашиваете документацию по Java): http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3.html#listObjects%28com.amazonaws.services.s3.model.ListObjectsRequest%29

В нем говорится:

Если вызывается listObjects сЗначение префикса «foo /» и значение разделителя «/» в этом сегменте возвращают ObjectListing, который содержит один ключ («foo / boo») и одну запись в списке общих префиксов («foo / bar»)./ ") .Чтобы заглянуть глубже в виртуальную иерархию, сделайте еще один вызов listObjects, установив для параметра prefix любой интересный общий префикс для перечисления отдельных ключей под этим префиксом.

Выделить мой.Похоже, что это фактически предполагаемая функциональность - возвращать префикс, общий для всех клавиш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...