2017-02-09 2 views
1

У меня есть довольно большие файлы для извлечения из памяти blob, и я думаю об отказе. Если он не загружается, например. сетевое подключение имеет временное прерывание, ему нужно повторить x раз. Однако я замечаю поведение, о котором я не знаю, как с этим бороться.Прерывание передачи из хранилища Azure Blob

Я реплицирую сетевую ошибку, просто отсоединив сетевой кабель в середине передачи на мою машину. Что тогда происходит, так это то, что передача останавливается на x% и никогда не движется дальше. Сеанс остается активным, задача переноса остается открытой, и файл назначения остается заблокированным. Даже после того, как я подключу кабель обратно, он остается таким, пока я не закрываю сеанс PowerShell (в данном случае ISE).

Это команда, я использую:

Get-AzureStorageBlobContent -blob $file.Name -Container $containerName -Destination $localPath -Context $Context -clientTimeoutPerRequest 60 -ErrorAction Stop -Force 

Он никогда не бросает ошибку, она просто застревает. Есть ли в любом случае я могу получить это до таймаута и вернуть ошибку, чтобы бросить в блок catch?

Спасибо.

ответ

2

Он никогда не выдает ошибку, он просто застревает. Есть ли в любом случае я могу получить это до таймаута и вернуть ошибку, чтобы бросить в блок catch?

Как вы сказали, если сеть проблема причина прерывания во время загрузки сгустка через Get-AzureStorageBlobContent Командлет, ошибка не достигнет улова блока. Если вы хотите перезапустить передачу и начать передачу с точки прерывания, вы можете попробовать использовать AZCopy. И AZCopy в режиме перезапуска поддерживается для прерывания, вызванного сетевыми или другими проблемами при передаче файлов, что может помочь перезапустить передачу с точки прерывания.

+0

Спасибо. Хотя стыдно. Я знаю об AZCopy. Я надеялся, что смогу сделать это с помощью командлета. – ScubaManDan

Смежные вопросы