使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件相关的知识,希望对你有一定的参考价值。

Azure的存储包含Storage Account、Container、Blob等具体的关系如下:

技术分享

我们常用的blob存储,存放在Storage Account的Container里面。

目前有三种方式可以把Blob里的内容共享给其他用户,这三种方式是:

1.把Container的属性设置为公共容器

技术分享

2.把Blob属性设置为公共公共Blob

设置好后,blob就可以通过wget的方式下载下来。

3.通过SAS Token的方式实现在一定时间段内的文件共享

SAS是shared access signature (SAS),可以实现文件共享。

技术分享

SAS Provider Service通过旁路的方式生成SAS的token,客户通过这个SAS Token实现在一定时间内,一定权限的访问。

下面将采用powershell的方式生成SAS Token,给客户访问的权限。

有一个文件:

Get-AzureStorageBlob -Container hengweisoft -Blob googlechrome.dmg

Container Uri: https://portalvhds6mlqtd15wqmm7.blob.core.chinacloudapi.cn/hengweisoft

Name BlobType Length ContentType LastModified SnapshotTime

---- -------- ------ ----------- ------------ ------------

googlechrome.dmg BlockBlob 65936251 application/octet-stream 2015/7/6 8:09:00 +00:00

其中hengweisoft这个Container是private的Container。

$startTime = Get-Date

$endTime = $startTime.AddHours(2.0)

New-AzureStorageBlobSASToken -Container hengweisoft -Blob googlechrome.dmg -Permission rwd -StartTime $startTime -ExpiryTime $endTime

通过这个命令可以生成一串SAS的Token:

?sv=2015-02-21&sr=b&sig=Ifn6JFOinaLQpYGKCKsYiUieQ58WdExxV2Z52Nx%2Fdjs%3D&st=2016-02-05T09%3A36%3A57Z&se=2016-02-05T11%3A36%3A57Z&sp=rwd

将这一串Token连接到Blob的URL上:

https://portalvhds6mlqtd15wqmm7.blob.core.chinacloudapi.cn/hengweisoft/googlechrome.dmg?sv=2015-02-21&sr=b&sig=Ifn6JFOinaLQpYGKCKsYiUieQ58WdExxV2Z52Nx%2Fdjs%3D&st=2016-02-05T09%3A36%3A57Z&se=2016-02-05T11%3A36%3A57Z&sp=rwd

这个文件在2个小时之内是可以进行不需要认证的访问的。

可以通过:

wget https://portalvhds6mlqtd15wqmm7.blob.core.chinacloudapi.cn/hengweisoft/googlechrome.dmg?sv=2015-02-21&sr=b&sig=Ifn6JFOinaLQpYGKCKsYiUieQ58WdExxV2Z52Nx%2Fdjs%3D&st=2016-02-05T09%3A36%3A57Z&se=2016-02-05T11%3A36%3A57Z&sp=rwd

直接获得这个文件。

以上是关于使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件的主要内容,如果未能解决你的问题,请参考以下文章

使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件

使用 Azure Devops 任务或 PowerShell 创建/更新 Azure WebApp 的路径映射

Azure 基础:使用 powershell 创建虚拟机

powershell 使用Azure PowerShell 1.0中的证书创建服务主体以进行身份​​验证

powershell 使用静态IP创建Azure VM

使用 Azure PowerShell 创建高级存储帐户