目标是直接复制到名为“ $ web”的blob容器中。
问题是,美元符号似乎破坏了AzCopy的位置解析...
AzCopy.exe /Source:"C:\temp\" /Dest:"https://mystorage.blob.core.windows.net/$web" /DestKey:"..." /SetContentType /V
Invalid location 'https://mystorage.blob.core.windows.net/$web', address could not be parsed.
我没有选择容器名称。转义$,又名
\$
没有用。
我该如何解决?见解赞赏。谢谢!
答案 0 :(得分:1)
@Gaurav指出了问题。目前,Azcopy仅能识别带有$root
容器的美元符号。还可以在Powershell中进行测试,不会中断,但是文件名会被上传到$root
,尽管其名称为$
。
生成此$web
容器-Static website hosting for Azure Storage的新功能刚刚发布。 Azcopy可能需要一些时间来赶上更改。
已打开an issue,您可以订阅它来获取进度。
更新
最新的v7.3.0 Azcopy支持此功能,对于VSTS用户,Azure File Copy v2任务(2.0.7)也与此最新版本一起使用。
答案 1 :(得分:1)
对于将来可能倾向于使用诸如文件复制(在后台使用AzCopy)的VSTS任务的读者,我建议考虑 Azure CLI 任务相反,例如
az storage blob upload-batch --account-name myAccountName --source mySource -d $web
我的客户不愿等待他们无法控制的时间表,因此切换到CLI路径将我们的依赖关系上移了一个级别,并省去了等待VSTS发布节奏的麻烦(这次大约需要6周的时间) 。
感谢杰里发回邮件,鸣谢!在我的VSTS中,我看到“文件复制v2.0预览”似乎可用,并且表面上解决了此问题。直接从Azure存储直接托管静态网站是一个不错的功能,我很高兴Azure提供它。
(我希望将来MS可能能够改善跨组织的通信,以便精明的用户热衷于签出新功能,可以在所有面向公众的区域中获得更一致的体验。)
答案 2 :(得分:0)
可接受的答案是一个可行的解决方法,建议使用az storage blob upload-batch
,但blob目标参数$web
必须用单引号引起来才能在PowerShell中工作。否则,PowerShell将引用名称为“ web”的变量
例如上载当前目录:az storage blob upload-batch --account-name myaccountname --source . -d '$web'