Пожалуйста, кто-нибудь может предложить лучший способ загрузить/загрузить видео-блок с несколькими размерами GB в самое быстрое время до лазурного хранилища?
Лучший способ загружать blob с огромным размером в GBs до лазурного в самое быстрое время
Ответ 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\
Ответ 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 здесь.
Ответ 6
Вы можете использовать службу импорта/экспорта Azure, где вы можете отправить диск с вашими данными в Azure DataCenter.
Проверьте эту ссылку: https://azure.microsoft.com/en-us/documentation/articles/storage-import-export-service/
Ответ 7
Я отношусь к новым целям миграции данных, и я стараюсь максимизировать преимущества "холодного" хранения и "выполнения" хранения с помощью набора бизнес-правил и различных сценариев тестирования BETA.
У меня нет связи с продуктом, но я обнаружил, что за деньги продукт GoodSync дает лучший удар для доллара. Позволяет планировать, триггеры смены файлов, множество параметров фильтрации, пока все параметры хранилища SMB и/или облачных вычислений могут быть проанализированы и синхронизированы. Он также позволяет многопоточность. Ни один из них не является "супер быстрым", но GoodSync по крайней мере позволяет управлять множеством заданий с помощью отдельных вкладок.
Проверьте это...