Скопируйте BLOB-объект из Azure в локальное хранилище с помощью Start-AzureStorageBlobCopy

Я хотел бы скопировать BLOB-объект из "хранилища Azure" в "Локальное хранилище" (эмулятор) с помощью powershell.

Я использую " Start-AzureStorageBlobCopy"

Хорошо работает между хранилищем Azure и Azure. Но для хранилища с "Azure" на "Local" (эмулятор) большие двоичные объекты копируются, но с 0 байтами. Капли создаются, потому что я вижу их в Storage Explorer.

В обозревателе хранилищ Azure у меня есть следующие свойства:

  • CopyProgress: 0/34550784
  • CopyStatus: не удалось

У меня нет ошибок в Powershell во время копирования. Но 0 байтов переданы

VERBOSE: Performing the operation "Copy" on target "https://xxxxx.blob.core.windows.net/aaaa.db".
VERBOSE: Copy request to blob 'aaaaaa.db' in container 'yyyyy' has been scheduled with copyId 865e4d31-6729-44d1-997d-fdb76409d6cb.
ICloudBlob        : Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob
BlobType          : BlockBlob
Length            : 0
ContentType       : 
LastModified      : 9/10/2017 2:10:45 PM +00:00
SnapshotTime      : 
ContinuationToken : 
Context           : Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext
Name              : aaaaaa.db

VERBOSE: Transfer Summary
--------------------------------
Total:  1.
Successful: 1.
Failed: 0.

2 ответа

Решение

Я не думаю, что можно скопировать BLOB-объект из вашей учетной записи облачного хранилища в локальную учетную запись эмулятора, используя Start-AzureStorageBlobCopy Командлет.

BLOB-объект копирования Azure - это асинхронная операция на стороне сервера, выполняемая службой хранилища Azure. Чтобы копирование работало, служба хранилища Azure должна иметь возможность добраться до места назначения. Поскольку целевой учетной записью является ваша локальная учетная запись хранения, недоступная извне вашего компьютера, служба хранилища Azure никогда не сможет достичь конечного пункта.

Одним из возможных решений было бы загрузить большой двоичный объект, а затем загрузить его в локальную учетную запись хранения с помощью соответствующих командлетов.

Другим вариантом будет использование функциональности BLOB-объектов Sync Copy AzCopy. Реализация Sync Copy Blob в AzCopy фактически загружает содержимое BLOB-объекта из источника, а затем загружает его в целевой каталог.

Get-AzureStorageBlobContent может работать для вас. Я написал статью о загрузке AzureStorageFileContent, которую разместил здесь: Загрузка хранилища файлов Azure

Другие вопросы по тегам