Я хочу сделать резервную копию определенных файлов и папки моего веб-приложения в хранилище больших двоичных объектов с помощью Powershell - PullRequest
0 голосов
/ 03 января 2019

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

Код:

$domain = "Resonate"
$user = "abc" 
$pw = "****"

$securepwd = ConvertTo-SecureString $pw -asplaintext -force
$account = $($domain)+"\"+$($user) 
$credential = New-Object System.Management.Automation.PSCredential($account,$securepwd) 

$username = "`$abc"
$password = "***"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"

$filePath = "C:\Users\Raj.Negi\Desktop\PowerShell\Web.config"
$apiUrl = "https://abc.scm.azurewebsites.net/api/vfs/site/wwwroot/Web.config"

Invoke-RestMethod -Uri $apiUrl -Credential $credential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET -OutFile $filePath -ContentType "multipart/form-data"

Connect-AzureRmAccount

$acctKey = (Get-AzureRmStorageAccountKey -Name abcdemo -ResourceGroupName abcRG).Value[0]

$storageContext = New-AzureStorageContext -StorageAccountName "abcdemo" -StorageAccountKey $acctKey

Set-AzureStorageBlobContent -File $filePath -Container "abccontainer" -BlobType "Block" -Context $storageContext -Verbose

В настоящее время он загружает один файл в мой локальный путь и затем загружает его в лазурный BLOB-объект.Я хочу, чтобы он непосредственно загружал его в блоб, не загружая его по локальному пути.Это может быть один файл или полная папка.

Microsoft предоставляет возможность частичного резервного копирования вашего веб-приложения, исключая содержимое, но бесполезно для больших приложений.Лучше, если они предоставляют только выбранные файлы / папки для резервного копирования.

1 Ответ

0 голосов
/ 17 января 2019

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

Вот мои шаги для резервного копирования ресурсов под D:\home Azure WebApp в хранилище BLOB-объектов.

  1. Я пытался использовать AzCopy v10 (только для версии x64), чтобы скопировать один файл в хранилище BLOB-объектов Azure на консоли Kudo, но по какой-то причине произошел сбой Access is denied. Однако AzCopy v8 в Windows работает в консоли Kudo.
  2. Сначала я установил AzCopy v8 на свой локальный компьютер с Windows и загрузил каталог AzCopy в C:\Program Files (x86)\Microsoft SDKs\Azure в путь консоли Kudo D:\home, как показано на рисунке ниже. enter image description here
  3. Я попытался загрузить один файл в свой контейнер test с помощью команды AzCopy /Source:D:\home\site\test /Dest:https://<account name>.blob.core.windows.net/test /DestKey:<account key> /Pattern:"example.txt" по пути D:\home\AzCopy, все работает.
  4. Я попытался загрузить каталог в свой виртуальный каталог backup контейнера test с помощью команды D:\home\AzCopy\AzCopy /Source:D:\home\site\test /Dest:https://ppas.blob.core.windows.net/test/backup /DestKey:b7AzhS60+0hgTWGJdaxXT0w4O6hGuoiL0UVwcLJWIwq/w6hJzKwvt9asFdpfx0yif73ghvLe6urLIo8h6CtZnw== /S /Y без подтверждения, он тоже работает.
  5. Поэтому я создаю .bat файл backup.bat, чтобы написать командные строки ниже, используя абсолютный путь в качестве шагов выше, чтобы загрузить его в виде запущенного веб-задания, как показано на рисунке ниже. Кроме того, вы можете сделать сценарий powershell, чтобы сделать то же самое.

    D:\home\AzCopy\AzCopy /Source:D:\home\site\test /Dest:https://<account name>.blob.core.windows.net/test/backup /DestKey:<account key> /Pattern:"example.txt" /Y
    D:\home\AzCopy\AzCopy /Source:D:\home\site\test /Dest:https://<account name>.blob.core.windows.net/test/backup /DestKey:<account key> /S /Y
    

enter image description here

Работает как положено. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...