【问题标题】:Automator throws error on download, but download still completes?Automator 在下载时抛出错误,但下载仍然完成?
【发布时间】:2021-10-10 06:46:15
【问题描述】:

我有一个工作流程,它使用传输和自动化将文件从 FTP 下载到我的计算机。

automator 中的动作如下所示:

这个动作的信息是正确的,远程文件路径的文件已经下载到我的电脑了。

但是,在 1/3 的下载过程中(约 200 个文件),automator 会抛出错误:

下载仍在继续,但错误会阻止 automator 执行其余的工作流程。

所以我的问题是: 如何解决此错误,或者至少在显示错误后让工作流程继续?

【问题讨论】:

  • Automator 没有任何类似的条件或错误处理 - 任何特定操作如何处理错误将取决于开发人员。

标签: applescript automator


【解决方案1】:

这是来自 Panic 的library:

配置 Automator 以上传或同步大文件时,Automator 可能会遇到错误:“操作“同步”遇到了 错误:“操作无法完成。 (可可错误-1)”。我们已经 还看到此错误显示为:-1712、-1753 和 -1。 -1 是 最常见。

很遗憾,Apple 已为 Automator 设置了 2 分钟的超时时间 macOS 10.14 及更高版本的操作。我们已将此报告给 Apple,但目前没有修复或解决方法。

如果这听起来像您面临的问题(您没有提及您的操作系统或传输版本),那么也许您可以调整工作流程以分块处理文件列表。

【讨论】:

  • 是的,这似乎可能导致问题。谢谢@Mockman。
  • 希望你能找到绕过它的方法。
  • 该错误是由超时引起的,来自您提供的链接。下载可以完成,但是,警告会停止工作流中的进一步操作。我通过仅用于下载的单独工作流程来解决此问题。
【解决方案2】:

有一种方法可以让 Automator 继续工作流程而不会超时。使用 AppleScript,如果您将下载命令包装在 with timeout of 1000 命令中(1000 以秒为单位。使用您认为可行的任何数字),脚本现在将等待在超时或继续执行下一个命令之前,下载命令最多需要 1000 秒才能完成,而不是默认的 120 秒。

因此,您可以在 中插入 Run AppleScript 命令,而不是将 Automator Transmit Download 操作添加到您的 Automator 工作流程工作流程


例如,假设您想下载 Transmit.app 中 remote browser of the current tab 上的每个当前选择的文件,而不需要定时输出,您可以插入一个 Run AppleScript 命令来您的 Workflow 并插入以下 AppleScript 代码。 (显然编辑代码中的属性以满足您的需要。)

property downloadLocation : POSIX path of (path to desktop)
property filesToDownload : missing value

tell application "Transmit"
    tell its document "Transmit"
        set selectedFiles to a reference to selected browser items of ¬
            (get remote browser of current tab)
        if (count of selectedFiles) > 0 then
            set filesToDownload to path of selectedFiles
        else
            return
        end if
        repeat with thisFile in filesToDownload
            with timeout of 1200 seconds
                download remote browser of current tab item at path thisFile to ¬
                    downloadLocation with resume mode resume
            end timeout
        end repeat
    end tell
end tell

【讨论】:

  • 我会说这是对我所做的更好的解决方案。请参阅上面我对 mockman 的回复。
  • @eengstroem 如果您认为我的解决方案是“比我所做的更好的解决方案”,为什么不考虑投票或选择它作为接受的解决方案?
  • 是的,我希望我能接受两者。 Mockman 解释了错误,而您提供了解决方法。我最终还是让脚本在单独的工作流程中与我发布的代码一起运行。
猜你喜欢
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 2021-01-18
  • 2023-03-10
相关资源
最近更新 更多