You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建带f权限的Azure Blob存储容器SAS令牌?

生成含f权限的SAS令牌以实现Blob标签筛选

由于f(筛选Blob)是较新的SAS权限,Azure Portal和az CLI目前暂不支持直接指定该权限参数,你可以通过以下几种方式生成包含f权限的SAS令牌:

方法1:使用Azure Storage Explorer

  • 打开Azure Storage Explorer,定位到目标存储账户的对应容器
  • 右键点击容器,选择「生成共享访问签名」
  • 在弹出的配置窗口中,找到「权限」区域,勾选筛选Blob选项(对应f权限)
  • 按需设置SAS的过期时间、允许的IP范围、协议等参数,点击「创建」后即可复制生成的SAS令牌

方法2:使用PowerShell(Az.Storage模块)

确保已安装Az.Storage模块,若未安装可执行:

Install-Module -Name Az.Storage -Force -AllowClobber

然后运行以下脚本生成含f权限的容器级SAS:

# 连接Azure账户
Connect-AzAccount

# 配置参数
$storageAccountName = "你的存储账户名称"
$containerName = "目标容器名称"
$expiryHours = 2 # SAS有效期(小时)

# 获取存储账户上下文
$storageCtx = (Get-AzStorageAccount -Name $storageAccountName).Context

# 生成带f权限的SAS令牌
$sasToken = New-AzStorageContainerSASToken -Context $storageCtx -Name $containerName -Permission "f" -ExpiryTime (Get-Date).AddHours($expiryHours)

# 输出SAS令牌
Write-Host "生成的SAS令牌:$sasToken"

如果需要同时赋予其他权限(如读r),只需将-Permission参数改为"fr"即可。

方法3:手动构造SAS签名(进阶场景)

若需完全自定义SAS参数,可手动构造签名:

  1. 从Azure Portal获取存储账户的访问密钥
  2. 构造SAS核心参数:
    • sv:指定存储服务版本(如2023-11-03)
    • ss:服务类型,Blob服务填b
    • srt:资源类型,容器填c
    • sp:权限,填f
    • se:过期时间,格式为UTC ISO 8601字符串(如2024-05-20T14:00:00Z)
  3. 按照Azure SAS签名算法,使用访问密钥生成签名,最终拼接成完整的SAS令牌。(注:手动构造步骤较繁琐,推荐优先使用前两种方法)

使用curl调用按标签查找Blob的示例

假设已生成SAS令牌,可通过以下curl命令调用REST API:

curl -X POST "https://<存储账户名>.blob.core.windows.net/<容器名>?comp=blobs&<SAS令牌>" \
-H "Content-Type: application/xml" \
-d '<FilterBlobQuery><Where>@container = '\''<容器名>'\'' AND <标签键> = '\''<标签值>'\''</Where></FilterBlobQuery>'

内容的提问来源于stack exchange,提问作者Philippe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 02:54:24