У меня возникла проблема при копировании контейнеров больших двоичных объектов из одной учетной записи хранения в другую с помощью AzCopy.
При попытке запустить процесс я получаю эту ошибку Ошибка:
Любая идея, почему у меня возникла эта проблема?
unknown command "/Source:https://pslfilestore.blob.core.windows.net/downloads" for "azcopy"
Run 'azcopy --help' for usage.
System.IO.StreamWriterdownloads
unknown command "/Source:https://pslfilestore.blob.core.windows.net/downloads" for "azcopy
"
Пожалуйста, смотрите код ниже
foreach (CloudBlobContainer items in containers)
{
var AzCopyProcess = new Process();
AzCopyProcess.StartInfo.UseShellExecute = false;
AzCopyProcess.StartInfo.RedirectStandardOutput = true;
AzCopyProcess.StartInfo.FileName = strCommand;
//pass storage account name, container and the key
AzCopyProcess.StartInfo.Arguments = $"/Source:https://{storageAccountName}.blob.core.windows.net/{items.Name} /Dest:{dayBlob.Uri}/{storageAccountName}/{items.Name} /SourceKey:{accountKey.ToString()} /DestKey:{pslFileStoreBackUpKey.ToString()} /S";
AzCopyProcess.Start();
StreamWriter stdOut = new StreamWriter(Console.OpenStandardOutput());
stdOut.AutoFlush = true;
Console.Write(stdOut);
var output = AzCopyProcess.StandardOutput.ReadToEnd();
Console.WriteLine($"{items.Name} {output}");
}
Какую версию AzCopy вы используете? AzCopy V8 и V10 используют совершенно разные параметры.
Судя по вашему отчету об ошибке, вы используете AzCopy V10, однако ваш код имеет формат V8. Я думаю, что это проблема.
В V10 использование копии должно быть: azcopy copy [source] [destination] [flags]
.
Синтаксис контейнера копирования должен быть таким: azcopy cp "https://<source-storage-account-name>.blob.core.windows.net/<container-name>" "https://<destination-storage-account-name>.blob.core.windows.net/<container-name>" --recursive
.
Для получения более подробной информации вы можете обратиться к этому документу: Перенос данных с помощью AzCopy и хранилища BLOB-объектов. Или вы можете использовать лайк azure cp --help
, чтобы узнать подробности.
Вот и все, приятель. Спасибо большое
Разве вы не должны где-то указывать команду
copy
? Наверное, в споре. Что-то вродеAzCopyProcess.StartInfo.Arguments = $"copy /Source:https://{storageAccountName}.blob.core.windows.net/{items.Name} /Dest:{dayBlob.Uri}/{storageAccountName}/{items.Name} /SourceKey:{accountKey.ToString()} /DestKey:{pslFileStoreBackUpKey.ToString()} /S";