Лучший способ загружать blob с огромным размером в GBs до лазурного в самое быстрое время

Пожалуйста, кто-нибудь может предложить лучший способ загрузить/загрузить видео-блок с несколькими размерами GB в самое быстрое время до лазурного хранилища?

Ответ 1

Я технический технический консультант Microsoft, и я разработал образец и бесплатный инструмент (без поддержки/без гарантии), чтобы помочь в этих сценариях.

Бинарные файлы и исходный код доступны здесь: https://blobtransferutility.codeplex.com/

Утилита Blob Transfer Utility является графическим инструментом для загрузки и загрузки тысяч небольших/больших файлов в/из хранилища Windows Azure Blob.

Особенности:

  • Создание пакетов для загрузки/загрузки
  • Установите Content-Type
  • Передача файлов параллельно
  • Разделить большие файлы на более мелкие части, которые передаются параллельно

Четвертая функция - это ответ на вашу проблему.

Вы можете узнать из примера кода, как я это сделал, или просто запустить инструмент и сделать то, что вам нужно сделать.

Ответ 2

Лучший способ загрузить/загрузить большие капли из Windows Azure Storage - это перехват загрузки/загрузки и правильное использование многопоточности. Есть несколько вещей, которые вам нужно будет рассмотреть:

  • Размер пакета должен зависеть от вашего интернет-соединения. Например, если вы находитесь на очень медленном подключении к Интернету, тогда загрузка больших отдельных фрагментов почти всегда приведет к таймаутам запроса.
  • Количество параллельных потоков для загрузки/загрузки должно зависеть от количества ядер процессора на компьютере, с которого работает ваш код приложения. По моему опыту, если вы используете приложение на 8-ядерном компьютере для достижения максимальной производительности, вы можете создать 8 потоков, каждый из которых загружает/загружает часть данных. У вас может возникнуть соблазн запустить 100 потоков и оставить управление потоками ОС, но я заметил, что в таких случаях большинство запросов времени истекает.
  • Операция загрузки/скачивания должна быть асинхронной. Вы не хотите, чтобы ваше приложение блокировало/запустило ресурсы на вашем компьютере.

Для загрузки большого файла вы можете решить размер блока (пусть говорят, это 1 МБ) и параллельные потоки (пусть говорят, это 8), а затем читать 8 МБ из файла в массиве с 8 элементами и начинать загрузку эти 8 элементов параллельно используют функциональность блока загрузки. После загрузки 8 элементов вы повторяете логику, чтобы читать следующие 8 МБ и продолжать этот процесс до момента загрузки всех байтов. После этого вы должны вызвать функцию списка блокировки транзакций, чтобы зафиксировать blob в хранилище blob.

Аналогично, для загрузки большого файла снова можно решить размер куска и параллельные потоки, а затем начать чтение частей блоба, указав заголовок диапазона в функции Get Blob. Как только эти куски будут загружены, вам необходимо будет изменить порядок на основе их фактических позиций (так как может случиться так, что вы получите 3 - 4 МБ фрагмента, загруженного до фрагмента 0 - 1 МБ) и начните записывать эти фрагменты в файл. Вам нужно будет повторить процесс до момента загрузки всех байтов.

Ответ 3

Вы можете использовать Cloud Combine для надежной и быстрой загрузки файлов в хранилище Azure blob. Он поддерживает многопоточную обработку, поэтому файл загружается с максимальной скоростью.

Ответ 4

Вы можете использовать windows azure powershell для загрузки/скачивания огромных файлов из лазурного.

Set-AzureStorageBlobContent предназначен для загрузки.

Set-AzureStorageBlobContent -Container containerName -File .\filename -Blob blobname

http://msdn.microsoft.com/en-us/library/dn408487.aspx

Get-AzureStorageBlobContent предназначен для загрузки.

Get-AzureStorageBlobContent -Container containername -Blob blob -Destination C:\test\

http://msdn.microsoft.com/en-us/library/dn408562.aspx

Ответ 5

Вы можете использовать служебную программу командной строки Microsoft AzCopy, если вы находитесь в ОС Windows. Для Linux/Mac вы можете использовать Azure CLI.

AzCopy - это утилита командной строки Windows, предназначенная для копирования данных в хранилище Microsoft Azure Blob, File и Table с использованием простых команд с оптимальной производительностью.

Загрузите blob:

AzCopy /Source:https://myaccount.blob.core.windows.net/mycontainer /Dest:C:\myfolder /SourceKey:my_key_here /Pattern:"abc.txt"

Загрузка одного файла:

AzCopy /Source:C:\myfolder /Dest:https://myaccount.blob.core.windows.net/mycontainer /DestKey:my_key_here /Pattern:"abc.txt"

Дополнительные примеры и информация о AzCopy здесь.

Ответ 7

Я отношусь к новым целям миграции данных, и я стараюсь максимизировать преимущества "холодного" хранения и "выполнения" хранения с помощью набора бизнес-правил и различных сценариев тестирования BETA.

У меня нет связи с продуктом, но я обнаружил, что за деньги продукт GoodSync дает лучший удар для доллара. Позволяет планировать, триггеры смены файлов, множество параметров фильтрации, пока все параметры хранилища SMB и/или облачных вычислений могут быть проанализированы и синхронизированы. Он также позволяет многопоточность. Ни один из них не является "супер быстрым", но GoodSync по крайней мере позволяет управлять множеством заданий с помощью отдельных вкладок.

Проверьте это...