Получить большие двоичные объекты без метаданных - PullRequest
0 голосов
/ 30 мая 2020

Я устанавливаю метаданные BLOB-объектов для всех BLOB-объектов в контейнере с помощью функции azure. Но из-за большого количества блобов функция таймаутов. Если я снова запустил функцию, она снова начнет получать капли, у которых уже есть метаданные. Есть ли способ получить только капли, не имеющие метаданных?

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

Есть ли способ получить только капли, не имеющие метаданных?

Это невозможно. Azure Хранилище BLOB-объектов не имеет возможности фильтрации метаданных на стороне сервера. Фактически, единственное, что вы можете выполнить на стороне сервера, - это префикс имени большого двоичного объекта. Что вам нужно сделать (и это то, что вы уже делаете), так это перечислить все капли, а затем отфильтровать их без метаданных в коде функции.

var response = await container.ListBlobsSegmentedAsync(prefix, true, BlobListingDetails.None, 200, continuationToken, null, null); continuationToken = response.ContinuationToken;

Я заметил, что в приведенном выше коде вы получаете только 200 капель за раз. Это не очень эффективно. В одном запросе к Azure хранилищу BLOB-объектов вы можете попросить службу хранилища вернуть не более 5000 BLOB-объектов. Если вы измените это значение с 200 на 5000, то количество запросов, которые вы будете делать в хранилище, значительно уменьшится, и есть вероятность, что вы сможете получить все капли до истечения времени ожидания функции.

0 голосов
/ 30 мая 2020

Вопрос не содержит примеров, но, может быть, можно указать параметры в вызове, чтобы точнее получить то, что вы хотите?

...