借助托管身份通过Curl将文件上传至Azure存储账户Blob
使用Curl通过系统分配托管身份上传文件到Azure存储容器
步骤1:获取托管身份的访问令牌
通过Azure实例元数据服务(IMDS)获取用于访问Azure存储的OAuth2令牌:
curl -H "Metadata: true" "http://169.254.169.254/metadata/identity/oauth2/token?resource=https%3A%2F%2Fstorage.azure.com%2F&api-version=2018-02-01"
返回结果是包含access_token的JSON数据,需提取该令牌用于后续认证。
步骤2:提取访问令牌并存储到变量
如果没有jq工具,可通过文本处理命令提取令牌并保存到环境变量:
ACCESS_TOKEN=$(curl -H "Metadata: true" "http://169.254.169.254/metadata/identity/oauth2/token?resource=https%3A%2F%2Fstorage.azure.com%2F&api-version=2018-02-01" | grep -o '"access_token":"[^"]*"' | cut -d'"' -f4)
步骤3:上传文件到目标容器
替换<你的存储账户名>为实际的Azure存储账户名称,执行以下Curl命令将本地test.txt上传到log容器:
curl -X PUT \ -T "test.txt" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "x-ms-version: 2021-06-08" \ -H "x-ms-blob-type: BlockBlob" \ "https://<你的存储账户名>.blob.core.windows.net/log/test.txt"
验证上传结果
可通过令牌构造GET请求检查Blob是否成功上传:
curl -H "Authorization: Bearer $ACCESS_TOKEN" "https://<你的存储账户名>.blob.core.windows.net/log/test.txt"
内容的提问来源于stack exchange,提问作者Keshav Gambhir
相关产品推荐
相关产品推荐

