Загрузите файл 2 ГБ в приложении Service Fabric - PullRequest
0 голосов
/ 03 октября 2019

Я разрабатываю приложение, которое будет поддерживать загрузку и выгрузку XML-файла с ограничением 2 ГБ. Я использую хранилище BLOB-объектов Azure в качестве постоянного хранилища для загрузки этих файлов и их последующей загрузки. Приведенный ниже фрагмент кода вызывает исключение OutOfMemory:

 var blob = this.GetBlockBlobReference(blobId, blobContainerName);
 return await blob.DownloadTextAsync().ConfigureAwait(false);

Кроме того, я не уверен, какой подход будет более быстрым и чистым.

1 Ответ

1 голос
/ 04 октября 2019

Для более быстрой загрузки / выгрузки больших двоичных объектов вы можете использовать Microsoft Azure Storage Data Movement Library . Эта библиотека предназначена для высокопроизводительной выгрузки, загрузки и копирования BLOB-объектов и файлов хранилища Azure.

Вы можете установить параллельные потоки с помощью следующего кода:

// Setup the number of the concurrent operations
TransferManager.Configurations.ParallelOperations = 64;

Затем используйте TransferManager.UploadAsync или TransferManager.DownloadAsync метод загрузки / скачивания больших двоичных объектов соответственно.

В github есть пример загрузки *1013*, вы можете легко изменить его для загрузки.

...