如何无需SAS认证Azure CLI/azcopy并简化文件复制操作?
解决Azure CLI/azcopy文件复制的403问题及便捷操作方案
一、azcopy无额外参数复制的解决方法
你遇到的403错误,核心原因是订阅所有者的管理权限≠存储数据权限:Azure存储的管理权限(如订阅所有者)和Blob数据权限是分离的,即使你是订阅所有者,AD登录身份默认没有Blob数据的读写权限,所以会报错,而SAS是直接赋予数据权限所以能正常使用。
解决步骤:
- 给登录的用户分配存储Blob数据参与者角色:在Azure门户的存储账户/容器的「访问控制(IAM)」中,添加角色分配,选择该角色并指定你的用户账户。
- 分配权限后,无需添加
--from-to=LocalBlob或SAS参数,直接执行原命令即可:./azcopy copy "./hello.txt" "https://myaccount.blob.core.windows.net/mycontainer/"
二、用Azure CLI(az命令)便捷复制文件
Azure CLI的az storage blob系列命令可以实现类似AWS S3的简洁操作,无需额外参数的配置方式如下:
确保已登录并设置默认存储账户(可选,简化后续命令):
az login --tenant-id myTenantId az storage account set --name myaccount单个文件上传:
az storage blob upload --container-name mycontainer --file "./hello.txt"如果没设置默认账户,直接指定账户名即可:
az storage blob upload --account-name myaccount --container-name mycontainer --file "./hello.txt"批量上传文件夹:
az storage blob upload-batch --source ./local-folder --destination mycontainer
内容的提问来源于stack exchange,提问作者sousvide
相关产品推荐
相关产品推荐

