繁体   English   中英

生成SAS以访问Azure存储

[英]Generating SAS to access Azure storage

我正在尝试编写一个Bash脚本,该脚本将备份Azure App服务并将备份保存到Azure存储中的容器中。

为此,我需要使用SAS来访问存储并生成一个SAS,我将使用以下命令:

az storage blob generate-sas -c containername --account-name storage-account-name -n blob-name

这里的问题是,我还需要提供blob名称才能使上述命令起作用,但我希望将备份直接存储在容器中。

但是,如果我使用Powershell并遵循此处的文档,则不需要使用Blob存储名称即可创建SAS。

因此,我想知道是否存在一种使用Azure-CLI生成SAS的方法,该方法在容器级别而不是在Blob级别有效。

请尝试使用az storage container generate-sas

az storage container generate-sas --name <container-name> --expiry <sas-expiry> --permissions <permissions> --account-name <account-name> --account-key <account-key>

要查看此命令的所有选项,请使用:

az storage container generate-sas --help

我同意高拉夫。 是的,您可以生成在容器级别有效的SAS。 您还可以使用以下命令来生成它。 它可以在bash shell上运行。

groupname=<>
accountname=<>
containername=<>
##generate connection-string
StorageAccountConnectionString=`az storage account show-connection-string --name $accountname --resource-group $groupname --output tsv`
##generate sas
sas=`az storage container generate-sas --connection-string $StorageAccountConnectionString -n $containername --permissions rl --expiry 'Y-m-dTH:M:SZ' --output tsv`

#usage example

groupname=shui
accountname=shui
containername=shui
##generate connection-string
StorageAccountConnectionString=`az storage account show-connection-string --name $accountname --resource-group $groupname --output tsv`
##generate sas
sas=`az storage container generate-sas --connection-string $StorageAccountConnectionString -n $containername --permissions rl --expiry '2018-06-30' --output tsv`
echo $sas
se=2018-06-30&sp=rl&sv=2016-05-31&sr=c&sig=GTdFdruu2DxzSoIKCb0K7YQpBPaJdHSaXLUPSOzTcZ4%3E

您还可以使用Azure CLI 2.0获取存储密钥。

#usage example
az storage account keys list -n shuihdi -g shui4 --output tsv|head -n 1|awk '{print $3}'
5NQdibPibJrxQ3StybPb1kMsAL8NVdL3GT3KWcodWL96vhBNz5fYRKuXmYWkHxPxvxGnmJTOAY2rizgnJa4qmQ==

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM