在 Automator 中引用原始文件和转换后的文件

Referencing both original and converted file in Automator

我正在尝试创建一个像这样工作的 Automator 应用程序:

  1. 您可以将任何类型的图像文件拖到应用程序上。
  2. 该应用程序会复制该文件,将其转换为 JPEG,将其缩小至 500 像素,删除文件名末尾的“复制”部分。
  3. 将原始文件上传到我的 Dropbox 帐户中的特定文件夹。
  4. 完成第 3 步后,将转换后的 JPEG 上传到我的 Dropbox 帐户中的另一个特定文件夹。
  5. 处理完成后,在本地删除转换后的 JPEG。

第 1 步和第 2 步有效。我还找到了一个 shell script,可用于使用提供的访问令牌将文件上传到 Dropbox。所以我可以让它上传转换后的 JPEG,因为这似乎是 </code> 变量在脚本中的内容。</p> <p>这是 shell 脚本:</p> <pre><code>DROPBOX_TOKEN="YOUR DROPBOX ACCESS TOKEN GOES HERE" FILE= FILENAME=$(basename "$FILE") UPLOAD=`curl -sX POST https://content.dropboxapi.com/2/files/upload \ --header "Authorization: Bearer $DROPBOX_TOKEN" \ --header "Dropbox-API-Arg: {\"path\": \"/$FILENAME\",\"mode\": \"add\",\"autorename\": true,\"mute\": false}" \ --header "Content-Type: application/octet-stream" \ --data-binary @"$FILE"`

我还附上了当前“Automator 流程”的截图。在此“流程”的当前状态下,通过 shell 脚本上传的文件是转换后的文件。

我卡住的部分是如何首先使用一个 shell 脚本上传原始图像文件,然后使用另一个 shell 脚本上传转换后的文件。我想我必须以某种方式为两者存储参考?

我也不太确定在完成所有操作后如何具体删除 JPEG。

我认为通过 设置变量值获取变量值 操作,您可以在这里实现您想要做的事情.

此工作流提供了使用这些的示例。您可以设置多个不同的命名变量,然后读取并在以后重用它们。为了让这个工作流程正常工作,我必须 select Ignore this action's input 用于 Get 步骤,否则它会同时使用 example 的值(这是文件的文件名落入应用程序)以及请求确认的输出(这是文件名再次,所以它试图将同一个文件移动到垃圾箱两次)。

创建变量时,您只需从下拉菜单中选择 New Variable...。然后你给它一个名字,并将值框留空(它是从 Set... 操作的输入中设置的)。

一旦你设置了一个变量,你也可以将它拖到一些地方(从 window 底部的变量部分),就像我在这里所做的那样,使文件路径显示出来在 请求确认 操作中。您还可以通过右键单击“变量”部分中的变量并选择 Delete exampleVariable

来删除任何未使用的变量

我认为可以完成您的完整工作流程的完整步骤可能是:

  1. 设置变量的值 首先,将你的 'original filename' 存储在变量 original (或其他东西)中,然后是你已经拥有的工作流程部分:
  2. 重复文件
  3. 转换为 JPEG
  4. 规模
  5. 删除“复制”
  6. 设置变量值 converted输入
  7. 您已经开始工作的上传 shell 脚本步骤
  8. 获取变量的值以读入converted(这应该勾选Ignore this action's input
  9. 将 Finder 项目移至废纸篓 以删除 JPEG 文件(可以是 shell 脚本以立即删除文件)
  10. 获取变量的值以读入original(这也应该勾选Ignore this action's input
  11. 您的上传shell脚本步骤再次(这次上传原始文件)
  12. 显示快乐警报消息