首页 > 解决方案 > 将文件从 Azurewebapp wwwroot 复制到 azure blob

问题描述

我尝试使用 copy-item 将 wwwroot 中的文件复制到 blob,但它不起作用。请您将任何可用的脚本发送给我。这对我会有很大的帮助。我是PowerShell的新手

标签: azurepowershellwwwroot

解决方案


根据我的经验,将一些文件和目录复制到 Azure Blob 存储的简单方法是使用 AzCopy 以下是我将 Azure WebApp 的 D:\home\site 下的资源复制到 Blob 存储的步骤。

  1. 首先,我在本地 Windows 机器上安装了 AzCopy v8,并将 C:\Program Files (x86)\Microsoft SDKs\Azure 下的 AzCopy 目录上传到 Kudo 控制台路径 D:\home\site,如下图。

在此处输入图像描述

  1. 使用命令复制文件

azcopy /Source:D:\home\site\wwwroot /Dest:"你的容器 url" /Destkey:"你的存储密钥" /s

在此处输入图像描述 有关详细信息,请参阅https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy?toc=%2fazure%2fstorage%2fblobs%2ftoc.json

更新

$Username = ""
$password = ""
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($name, $secpasswd)
Add-AzureRmAccount -Credential $mycreds
$ResourceGroupName=""
$AccountNmae=""
$ContainerName=""
$account =Get-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $AccountNmae

$container=Get-AzureStorageContainer -Name $ContainerName -Context $account.Context

$sourceFileRootDirectory = ""

if ($container) {
        $filesToUpload = Get-ChildItem $sourceFileRootDirectory -Recurse

        foreach ($x in $filesToUpload) {
            $targetPath = ($x.fullname.Substring($sourceFileRootDirectory.Length + 1)).Replace("\", "/")

            Write-Verbose "Uploading $("\" + $x.fullname.Substring($sourceFileRootDirectory.Length + 1)) to $($container.CloudBlobContainer.Uri.AbsoluteUri + "/" + $targetPath)"
            Set-AzureStorageBlobContent -File $x.fullname -Container $container.Name -Blob $targetPath -Context $account.Context -Force | Out-Null
        }
    }

推荐阅读