【问题标题】:AzCopy ignore if source file is older如果源文件较旧,则 AzCopy 忽略
【发布时间】:2021-02-23 08:12:20
【问题描述】:

是否有处理下一种情况的选项: 我在其中实现了一个管道和复制文件任务,它用于将一些静态 html 文件从 git 上传到 blob。一切都很完美。但有时我需要在 blob 存储中更改此文件(使用托管应用程序工具)。所以,问题是:我是否可以“检测”我的 git 文件是否比目标 blob 文件旧,并忽略此文件以进行复制任务以使其保持不变。我最初的想法是使用 Azure 文件副本并使用“可选参数”文本框。但是,我在文档中找不到所需的选项。它允许这样的事情吗?还是应该以其他方式处理这种情况?

【问题讨论】:

  • 嗨@AlexVmv,这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒this

标签: azure-devops azcopy azure-devops-pipelines


【解决方案1】:

我认为您正在为--overwrite 选项寻找isSourceNewer 值。

--overwrite 字符串如果此标志设置为true,则覆盖目标位置的冲突文件和blob。 (默认true)可能的值包括truefalsepromptifSourceNewer

更多信息:azcopy copy - Options

【讨论】:

  • 所以,我尝试使用它,但出现下一个错误:由于错误无法解析用户输入:无法将“ifSourceNewer”解析为“OverwriteOption”我正在使用管道任务版本4.*。根据描述,它支持 AzCopy 版本 10.3.3。日志显示:##[command] & "AzCopy\AzCopy.exe" copy --overwrite=ifSourceNewer
【解决方案2】:

同意 ickvdbosch。 --overwrite 选项的 isSourceNewer 值可以满足您的要求。

错误:无法将“ifSourceNewer”解析为“OverwriteOption”

根据我的测试,我可以在 Azure 文件复制任务中重现此问题。

Azure 文件复制任务中的isSourceNewer 值似乎无法设置为Overwrite 选项。

解决方法:您可以使用 PowerShell 任务运行 azcopy 脚本以使用 --overwrite=ifSourceNewer 上传文件

例如:

azcopy copy "filepath" "BlobURLwithSASToken" --overwrite=ifSourceNewer --recursive

更多详细信息,您可以参考this doc

关于 Azure 文件复制任务的问题,我建议您可以通过以下链接提交反馈票:Report task issues

【讨论】:

  • 看来我应该使用这样的东西? azcopy login --service-principal --application-id "***" --tenant-id="" --aad-endpoint "login.windows.net",但是我不知道如何获取application-id,或者应该使用另一种授权方法吗?仅使用tenant-id 还不够,我可以使用它登录,但我无法授权我的 azcopy 副本
猜你喜欢
  • 2015-01-26
  • 2022-01-18
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2020-11-08
  • 2020-04-16
  • 1970-01-01
相关资源
最近更新 更多