gpt4 book ai didi

powershell - Azure 自动化、PowerShell 用于获取私有(private) blob 容器中的文件

转载 作者:行者123 更新时间:2023-12-02 22:16:22 25 4
gpt4 key购买 nike

我有一个设置为私有(private)的 azure blob 容器。我想使用 PowerShell 下载此容器中的文件。

这是我输入的内容,但是每次都会给我 ResourceNotFound 错误。即使我输入 -Credential 和我的用户名/访问 key 。当我将容器切换到公共(public)访问时,它总是有效。那么我错过了什么吗?

Invoke-WebRequest -Uri $uri -OutFile $filePath

最佳答案

使用Invoke-WebRequest类似于在浏览器中打开链接。这是从 Azure 存储下载文件的合法方式,但是为此,您需要 URI 包含 SAS (Shared Access Signature) ,您必须先生成它,然后才能在代码中使用它。实现此目的的 PowerShell 是:

#Download via URI using SAS
$BlobUri = 'https://yourstorageaccount.blob.core.windows.net/yourcontainer/yourfile.txt'
$Sas = '?sv=2015-04-05&st=2015-04-29T22%3A18%3A26Z&se=2015-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D'
$OutputPath = 'C:\Temp\yourfile.txt'
$FullUri = "$BlobUri$Sas"
(New-Object System.Net.WebClient).DownloadFile($FullUri, $OutputPath)

或者,如果您安装了 Azure PowerShell 模块,则可以轻松完成此操作:

# Download via Azure PowerShell
$StorageAccountName = 'yourstorageaccount'
$StorageAccountKey = Get-AzureStorageKey -StorageAccountName $StorageAccountName
$StorageContext = New-AzureStorageContext $StorageAccountName -StorageAccountKey $StorageAccountKey.Primary
$FileName = 'yourfile.txt'
$OutputPath = 'C:\Temp'
$ContainerName = 'yourcontainer'
Get-AzureStorageBlobContent -Blob $FilebName -Container $ContainerName -Destination $OutputPath -Context $StorageContext

关于powershell - Azure 自动化、PowerShell 用于获取私有(private) blob 容器中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34903180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com