在 windows 上使用 python 自动化 azure azcopy
Automate azure azcopy using python on windows
我正在尝试使用 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 call
call(["azcopy", "login", "--service-principal", "--application-id=<removed>", "--tenant-id=<removed>"])
第二次尝试:
import os
os.system("azcopy login --service-principal --application-id=<removed> --tenant-id=<removed>")
我的环境中已经 set AZCOPY_SPA_CLIENT_SECRET
。
我在 windows 上使用 python 3。
每次我收到这个错误:
Failed to perform login command: service principal auth requires an
application ID, and client secret/certificate
NOTE: If your credential was created in the last 5 minutes, please
wait a few minutes and try again.
我不想使用 Azure VM 来完成这项工作
谁能帮我解决这个问题?
这是因为set
cmd没有设置永久环境变量,只在当前windowscmd提示符下生效
您应该通过UI手动设置环境变量或尝试使用setx
命令。
我用你的代码做了测试,按照UI手动设置AZCOPY_SPA_CLIENT_SECRET
的环境变量,然后代码可以运行 没有问题(可能需要几分钟才能生效)。
测试结果如下:
我正在尝试使用 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 call
call(["azcopy", "login", "--service-principal", "--application-id=<removed>", "--tenant-id=<removed>"])
第二次尝试:
import os
os.system("azcopy login --service-principal --application-id=<removed> --tenant-id=<removed>")
我的环境中已经 set AZCOPY_SPA_CLIENT_SECRET
。
我在 windows 上使用 python 3。
每次我收到这个错误:
Failed to perform login command: service principal auth requires an application ID, and client secret/certificate
NOTE: If your credential was created in the last 5 minutes, please wait a few minutes and try again.
我不想使用 Azure VM 来完成这项工作
谁能帮我解决这个问题?
这是因为set
cmd没有设置永久环境变量,只在当前windowscmd提示符下生效
您应该通过UI手动设置环境变量或尝试使用setx
命令。
我用你的代码做了测试,按照UI手动设置AZCOPY_SPA_CLIENT_SECRET
的环境变量,然后代码可以运行 没有问题(可能需要几分钟才能生效)。
测试结果如下: