在 Automator 中引用原始文件和转换后的文件
Referencing both original and converted file in Automator
我正在尝试创建一个像这样工作的 Automator 应用程序:
- 您可以将任何类型的图像文件拖到应用程序上。
- 该应用程序会复制该文件,将其转换为 JPEG,将其缩小至 500 像素,删除文件名末尾的“复制”部分。
- 将原始文件上传到我的 Dropbox 帐户中的特定文件夹。
- 完成第 3 步后,将转换后的 JPEG 上传到我的 Dropbox 帐户中的另一个特定文件夹。
- 处理完成后,在本地删除转换后的 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
来删除任何未使用的变量
我认为可以完成您的完整工作流程的完整步骤可能是:
- 设置变量的值 首先,将你的 'original filename' 存储在变量
original
(或其他东西)中,然后是你已经拥有的工作流程部分:
- 重复文件
- 转换为 JPEG
- 规模
- 删除“复制”
- 设置变量值
converted
输入
- 您已经开始工作的上传 shell 脚本步骤
- 获取变量的值以读入
converted
(这应该勾选Ignore this action's input
)
- 将 Finder 项目移至废纸篓 以删除 JPEG 文件(可以是 shell 脚本以立即删除文件)
- 获取变量的值以读入
original
(这也应该勾选Ignore this action's input
)
- 您的上传shell脚本步骤再次(这次上传原始文件)
- 显示快乐警报消息
我正在尝试创建一个像这样工作的 Automator 应用程序:
- 您可以将任何类型的图像文件拖到应用程序上。
- 该应用程序会复制该文件,将其转换为 JPEG,将其缩小至 500 像素,删除文件名末尾的“复制”部分。
- 将原始文件上传到我的 Dropbox 帐户中的特定文件夹。
- 完成第 3 步后,将转换后的 JPEG 上传到我的 Dropbox 帐户中的另一个特定文件夹。
- 处理完成后,在本地删除转换后的 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
我认为可以完成您的完整工作流程的完整步骤可能是:
- 设置变量的值 首先,将你的 'original filename' 存储在变量
original
(或其他东西)中,然后是你已经拥有的工作流程部分: - 重复文件
- 转换为 JPEG
- 规模
- 删除“复制”
- 设置变量值
converted
输入 - 您已经开始工作的上传 shell 脚本步骤
- 获取变量的值以读入
converted
(这应该勾选Ignore this action's input
) - 将 Finder 项目移至废纸篓 以删除 JPEG 文件(可以是 shell 脚本以立即删除文件)
- 获取变量的值以读入
original
(这也应该勾选Ignore this action's input
) - 您的上传shell脚本步骤再次(这次上传原始文件)
- 显示快乐警报消息