将文件作为 blob 上传到 azure 存储帐户,并使用托管标识进行身份验证

问题描述 投票:0回答:1

我想将文本文件从虚拟机上传到存储帐户。为此,我创建了一个启用了系统分配的托管标识的虚拟机。我将托管标识作为 RBAC 策略分配给存储帐户(赋予存储 Blob 数据所有者权限)。我现在想使用curl 请求将文件上传到容器名称日志中(因为我没有在虚拟机中安装az cli)。我怎样才能做到这一点。

我要上传的文件是test.txt,并且想以同名上传。

谢谢

bash azure-blob-storage azure-virtual-machine azure-managed-identity
1个回答
0
投票

将文件作为 blob 上传到 azure 存储帐户,并使用托管标识进行身份验证。

有多种方法可以将文件上传

storage account

方法一:

使用

SAS
令牌和 'curl' 命令将文件上传到存储帐户。

  1. 转到存储帐户并生成具有
    所需
    权限的SAS令牌

enter image description here

  1. 运行以下命令,使用 curl 将文件从 Linux VM 复制到存储帐户..
  curl -H "x-ms-blob-type: BlockBlob" --upload-file samplefile.txt --url "https://venkat12.blob.core.windows.net/log/samplefile.txt?<SAS_Token>"

输出:

enter image description here

文件已上传到存储帐户。

enter image description here

方法 2:Azcopy

managed Identity

下载 AzCopy:

wget https://aka.ms/downloadazcopy-v10-linux

提取 AzCopy

tar -xvf downloadazcopy-v10-linux

将 AzCopy 移动到目录

sudo cp ./azcopy_linux_amd64_*/azcopy /usr/local/bin/

验证安装:

azcopy --version

登录

sudo azcopy login --identity

执行以下命令

upload
将文件添加到存储帐户。

sudo azcopy  copy '/home/Venkat/samplefile.txt' 'https://venkat12.blob.core.windows.net/log/samplefile.txt'

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.