Как импортировать немой файл в базу данных Azure на сервере MySQL, дамп находится в BLOB-объекте. Как я могу динамически получить доступ к файлу BLOB - PullRequest
0 голосов
/ 21 марта 2019

Мой код оболочки Power, загружает файл дампа из хранилища Azure на мой локальный диск. Get-AzureStorageBlobContent -Container $storagecontainername -Blob $backupfilename -Destination $restorefilename

Импорт происходит с использованием файла дампа на локальном диске. get-content $restorefilename | &"$mysqlpath" -h $servername -u $username -p $password $database

Я хочу заменить $restorefilename файлом blob напрямую.

1 Ответ

0 голосов
/ 22 марта 2019

Для этого нет встроенного командлета.

Вы можете использовать метод .net в powershell для прямой загрузки файлов BLOB-объектов в виде строки.

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

пример кода, как показано ниже для публичного блоба:

$client = New-Object System.Net.WebClient
$client.DownloadString("https://xxx.blob.core.windows.net/f22/t1.txt")

Результат теста, как показано ниже:

enter image description here

так что в вашем случае вы можете написать что-то вроде ниже:

$client = New-Object System.Net.WebClient
$restorefilename = $client.DownloadString("https://xxx.blob.core.windows.net/f22/t1.txt")
$restorefilename | &"$mysqlpath" -h $servername -u $username -p $password $database

А если ваш BLOB-объект закрыт, вы можете выполнить снимок экрана ниже, чтобы создать sas-URL для загрузки:

enter image description here

...