为了账号安全,请及时绑定邮箱和手机立即绑定

在 Windows 上使用 python 自动化 azure azcopy

在 Windows 上使用 python 自动化 azure azcopy

RISEBY 2022-12-20 15:05:40
我正在尝试使用python 中的azcopy,我已经从CLI中使用过它并且它正在运行!我已经成功执行了以下命令:上传:set AZCOPY_SPA_CLIENT_SECRET=<my client secret>azcopy login --service-principal --application-id=<removed> --tenant-id=<removed>azcopy copy "D:\azure\content" "https://dummyvalue.blob.core.windows.net/container1/result4" --overwrite=prompt --follow-symlinks --recursive --from-to=LocalBlob --blob-type=Detect同样下载azcopy copy "https://dummyvalue.blob.core.windows.net/container1/result4" "D:\azure\azcopy_windows_amd64_10.4.3\temp\result2" --recursive现在,我想使用 python 自动执行这些命令,我知道 azcopy 也可以使用 SAS 密钥来使用,但这超出了我的工作范围第一次尝试:from subprocess import callcall(["azcopy", "login", "--service-principal", "--application-id=<removed>", "--tenant-id=<removed>"])第二次尝试:import osos.system("azcopy login --service-principal --application-id=<removed> --tenant-id=<removed>")我已经set AZCOPY_SPA_CLIENT_SECRET在我的环境中了。我在 Windows 上使用 python 3。每次我收到此错误:无法执行登录命令:服务主体身份验证需要应用程序 ID 和客户端密码/证书注意:如果您的凭据是在最后 5 分钟内创建的,请等待几分钟,然后重试。我不想使用 Azure VM 来完成这项工作谁能帮我解决这个问题?
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

这是因为setcmd没有设置永久环境变量,它只在当前windows cmd提示符下生效。

您应该通过 UI 手动设置环境变量或尝试使用setx命令。

我用你的代码做了测试,根据UI手动设置环境变量AZCOPY_SPA_CLIENT_SECRET然后代码可以正常运行(可能需要几分钟才能生效)。

测试结果如下:

//img1.sycdn.imooc.com//63a15ee600012eb915510998.jpg

查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信