我的web应用程序有大量的文件和文件夹,但我只想备份特定的文件/文件夹,然后将它们存储到blob存储中。这种方法用于灾难恢复。
代码:
$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
目前它下载一个文件到我的本地路径,然后上传到azure blob。我想它应该直接上传到blob,而不下载到本地路径。它可以是一个文件或完整的文件夹。
microsoft通过排除内容提供了对web应用程序进行部分备份的方法,但对于大型应用程序来说这是无用的。最好只提供选定的文件/文件夹备份。
1条答案
按热度按时间jgovgodb1#
根据我的经验,将一些文件和目录备份到azure blob存储的简单方法是使用azcopy,您可以将它与azure webapp上的azure触发webjob结合起来以满足您的需要。
下面是我的步骤来实现备份下的资源
D:\home
从azure webapp到blob存储。我尝试使用azcopy v10(仅x64版本)将单个文件复制到kudo控制台上的azure blob存储,但由于以下原因失败
Access is denied
. 但是,windows上的azcopyv8在kudo控制台中工作。首先,我在本地windows机器上安装了azcopyv8,并上传
AzCopy
下的目录C:\Program Files (x86)\Microsoft SDKs\Azure
进入工藤控制台路径D:\home
,如下图所示。我试图上传一个文件到我的容器
test
via命令AzCopy /Source:D:\home\site\test /Dest:https://<account name>.blob.core.windows.net/test /DestKey:<account key> /Pattern:"example.txt"
在小路下面D:\home\AzCopy
,它起作用了。我试图上传一个目录到我的虚拟目录
backup
集装箱数量test
via命令D:\home\AzCopy\AzCopy /Source:D:\home\site\test /Dest:https://ppas.blob.core.windows.net/test/backup /DestKey:b7AzhS60+0hgTWGJdaxXT0w4O6hGuoiL0UVwcLJWIwq/w6hJzKwvt9asFdpfx0yif73ghvLe6urLIo8h6CtZnw== /S /Y
如果没有确认提示,它也能工作。所以我做了一个
.bat
文件backup.bat
按照上面的步骤使用绝对路径编写下面的命令行,将其作为触发的webjob上传,如下图所示。此外,您还可以制作一个powershell脚本来执行相同的操作。它按预期工作。