簡體   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