Одновременный листинг и загрузка BLOB-объектов - PullRequest
0 голосов
/ 16 апреля 2019

Я перечисляю все капли из лазурного контейнера.У меня много блобов, поэтому перечисление занимает около 50 минут.Мне нужно знать, если в это время кто-то загрузит новый файл, он также будет включен в текущий список?Или я должен начать новый листинг с новым BlobContinuationToken?

BlobContinuationToken ct = null;
var blobs = new List<CloudBlockBlob>();
do
{
   var blobsSegment = await blobDirectory.ListBlobsSegmentedAsync(true,
                            BlobListingDetails.Metadata,
                            5000,
                            ct,
                            null, 
                            null);

    foreach (var blob in blobsSegment.Results.OfType<CloudBlockBlob>())
    {
      blobs.Add(blob);
    }

    ct = blobsSegment.ContinuationToken;
}
while (ct != null);

1 Ответ

1 голос
/ 16 апреля 2019

Мне нужно знать, если за это время кто-то загрузит новый файл, он быть в списке также в текущем списке?

Простой ответ на ваш вопрос заключается в том, что это зависит.

В основном, когда капли перечислены, они перечислены в алфавитном порядке. Таким образом, если мы предположим, что все большие двоичные объекты в контейнере больших двоичных объектов начинаются с алфавита (a - z), и когда вы перечисляете большие двоичные объекты, сначала будут возвращены все большие двоичные объекты, начинающиеся с буквы a, за которыми следуют большие двоичные объекты, начинающиеся с буквы b и т. Д. И т. Д. ,

Теперь, если вы начали перечислять большие двоичные объекты, и вы достигли до больших двоичных объектов, начинающихся с буквы h, и кто-то добавляет большой двоичный объект, начинающийся с буквы n, то этот большой двоичный объект будет возвращен в списке больших двоичных объектов.

Однако, если кто-то добавляет блоб, начинающийся с буквы a, этот блоб не будет возвращен в списке блобов. Чтобы включить этот BLOB-объект в список BLOB-объектов, вам необходимо перезапустить процесс создания списка.

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