{"id":24917,"date":"2022-08-23T07:30:00","date_gmt":"2022-08-23T14:30:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=24917"},"modified":"2022-08-23T08:48:44","modified_gmt":"2022-08-23T15:48:44","slug":"upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc","title":{"rendered":"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Have you ever used the <a href=\"https:\/\/support.apple.com\/guide\/mac-help\/perform-quick-actions-in-the-finder-on-mac-mchl97ff9142\/mac\" target=\"_blank\" rel=\"noreferrer noopener\">Mac Finder Quick Actions<\/a>? Quick Actions workflows are visible when you right-click on a file in Finder. There are built-in Quick Actions like \u201cCreate PDF\u201d, and now, you can create your own Quick Actions to automate custom tasks.\u00a0\u00a0<\/p>\n\n\n\n<p>Here, you\u2019ll learn how to create your own Finder Quick Action that you can use to automatically upload selected images to Cloudinary. We\u2019ll also copy the secure URL <a href=\"https:\/\/cloudinary.com\/documentation\/image_upload_api_reference#upload_response\" target=\"_blank\" rel=\"noreferrer noopener\">returned in the Cloudinary Upload API response<\/a> into your clipboard so you can start working with your new image immediately.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Technology Overview<\/strong><\/h2>\n\n\n\n<p>The <a href=\"https:\/\/support.apple.com\/guide\/automator\/welcome\/mac\">Mac Automator<\/a> helps Mac users to automate tasks in many ways. It provides a user interface for creating Quick Actions. Custom Quick Actions are made up of action templates shared in the Automator library. One of the built-in action templates can <strong>Run Shell Scripts<\/strong>.<\/p>\n\n\n\n<p>Cloudinary offers <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_cli\">a command line interface (CLI)<\/a> that enables you to make API calls in your terminal. You can create a shell script using Cloudinary CLI commands. The Cloudinary CLI runs on top <a href=\"https:\/\/cloudinary.com\/documentation\/django_integration\">of the Python SDK<\/a>.<\/p>\n\n\n\n<p>You\u2019ll see how to create a shell script using the Cloudinary CLI, and then, add it to the Automator \u201cRun Shell Script\u201d action to create your own \u201cUpload to Cloudinary\u201d Quick Action.<\/p>\n\n\n\n<p>Here are the steps you\u2019ll perform to create your own custom Quick Action.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660926246\/Quickactionmac2.png\" alt=\"\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Preparation<\/strong><\/h2>\n\n\n\n<p>You need to install Python and the Cloudinary CLI before you can create and add your shell script to Automator. You\u2019ll need a Cloudinary account, so you can access the credentials you need to perform a file upload. If you do not already have an account on Cloudinary, you can quickly set one up for free at <a href=\"https:\/\/www.cloudinary.com\/console\">https:\/\/www.cloudinary.com\/console<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Get Your Cloudinary Credentials<\/strong><\/h3>\n\n\n\n<p>Once you have a Cloudinary account, you can access your CLOUDINARY_URL in the console, as shown below. You\u2019ll find your account details by clicking on the <a href=\"https:\/\/www.cloudinary.com\/console\">Dashboard<\/a> link. You\u2019ll use the CLOUDINARY_URL to show shell script to authenticate and get authorization to upload. You can easily copy the CLOUDINARY_URL into your clipboard by clicking on the copy icon. You can save this in a text file until you are ready to write your shell script.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660926246\/quickactionmac3.png\" alt=\"\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Install Python Using Brew<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660926246\/quickactionmac4.png\" alt=\"\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Install the Cloudinary Python SDK<\/strong><\/h3>\n\n\n\n<p>If you are new to Python, the <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noreferrer noopener\">Homebrew package manager<\/a> can help you install the latest version quickly. If you haven\u2019t installed Homebrew yet, you can do this by going to your Terminal and pasting the following command:<br><\/p>\n\n\n\n<p><code>mkdir homebrew &amp;&amp; curl -L https:\/\/github.com\/Homebrew\/brew\/tarball\/master | tar xz --strip 1 -C homebrew<\/code><\/p>\n\n\n\n<p>Once <strong>Homebrew<\/strong> is installed, install the latest version of Python using this command:<\/p>\n\n\n\n<p><code>brew install python<\/code><\/p>\n\n\n\n<p>Test your Python installation by checking the version. If you see version&nbsp; &gt;= 3.6,&nbsp; you can proceed.&nbsp;&nbsp;<\/p>\n\n\n\n<p><code>python3 --version<\/code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>With the Homebrew install, you\u2019ll refer to version 3 of Python as <strong>python3<\/strong>. With your Python installation, you should get the Python package manager, pip. Starting in version 3.4, pip is automatically installed with Python.<\/p>\n\n\n\n<p><code>pip3 --version<\/code><\/p>\n\n\n\n<p>Now, you\u2019re ready to install the Cloudinary Python SDK.<\/p>\n\n\n\n<p><strong>Note:<\/strong> <em>There are many ways to install Python, so as long as you have a version &gt;= 3.6 installed, you will be good to go!<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660926246\/quickactionmac5.png\" alt=\"\" \/><\/figure>\n\n\n\n<p>Go to your Terminal and install the Cloudinary Python SDK using pip:<\/p>\n\n\n\n<p><code>pip3 install cloudinary<\/code><\/p>\n\n\n\n<p>Now you\u2019re ready to install the Cloudinary CLI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Install the Cloudinary CLI<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1661185004\/image_2_copy.png\" alt=\"\" \/><\/figure>\n\n\n\n<p>You can use pip to install the Cloudinary CLI.<\/p>\n\n\n\n<p><code>pip3 install cloudinary-cli<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Test Your CLI Configuration using CLOUDINARY_URL<\/strong><\/h3>\n\n\n\n<p>Confirm that your CLI is installed by exporting your CLOUDINARY_URL and calling the CLI configuration command. You can now test your CLI with the cld config command.<\/p>\n\n\n\n<p><code>export CLOUDINARY_URL=cloudinary:\/\/API_KEY:API_SECRET@cloud_name<\/code><\/p>\n\n\n\n<p><code>cld config<\/code><\/p>\n\n\n\n<p>Note: CLOUDINARY_URL details are not included in the example above. Yours will contain user-specific values for API_KEY, API_SECRET, and cloud_name. Paste the CLOUDINARY_URL you retrieved in an earlier step. The config command will never show your entire <strong>api_secret<\/strong>, which is like a password and should never be shared. The <strong>cloud_name<\/strong> and <strong>api_key<\/strong> are considered safe to show.<\/p>\n\n\n\n<p>You should see the following response, with your cloud details:<\/p>\n\n\n\n<p><code>cloud_name: cloudinary-training<\/code><\/p>\n\n\n\n<p><code>api_key: 279567774524278<\/code><\/p>\n\n\n\n<p><code>api_secret: ***************MMWA<\/code><\/p>\n\n\n\n<p><code>private_cdn: False<\/code><\/p>\n\n\n\n<p><code>signature_algorithm: sha1<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Give Automator Access to Your File System<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660931995\/quickactionmac18.png\" alt=\"\" width=\"616\" height=\"543\" \/><\/figure>\n\n\n\n<p>Before you start setting up your custom Quick Action in Automator, give Automator access to your file system.&nbsp; It will need to access the file system in order to hand files off to your shell script.<\/p>\n\n\n\n<p>Follow these four steps to provide Automator appropriate access:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Unlock the lock by clicking on it to enable changes to security.&nbsp;<\/li><li>Select Full Disk Access.<\/li><li>If Automator is not shown in your list of applications, click on the \u201c+\u201d to add Automator, which can be found in the Applications folder.<\/li><li>Click on the checkbox next to Automator to indicate that it should have Full Disk Access.<\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Create the Quick Action<\/strong><\/h3>\n\n\n\n<p>Start by opening the Automator application on your Mac. You can do this by Spotlight searching (cmd &#8211; space) for Automator. You can also find Automator in your Applications folder.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Choose to Create a Quick Action<\/strong><\/h3>\n\n\n\n<p>With the Automator application open, click on \u201cFile\u201d, and then select \u201cQuick Action\u201d, followed by the \u201cChoose\u201d button.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660931994\/quickactionmac19.png\" alt=\"\" width=\"556\" height=\"552\" \/><\/figure>\n\n\n\n<p>This will open up the Quick Action creation interface.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Choose the Finder Application<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660931994\/quickactionmac20.png\" alt=\"\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660931994\/Quickactionmac15.png\" alt=\"\" \/><\/figure>\n\n\n\n<p>Above the Quick Action workflow canvas, select \u201cfiles or folders\u201d from \u201cWorkflow receives current\u201d and \u201cFinder\u201d for \u201cany application\u201d.&nbsp; This allows you to pass in files that you have selected in Finder to the Quick Action workflow.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Add a Shell Script Action to the Workflow Canvas<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660931994\/quickaction17.png\" alt=\"\" width=\"737\" height=\"296\" \/><\/figure>\n\n\n\n<p>Type \u201cshell\u201d in the Actions search box.&nbsp; Drag the \u201cRun Shell Script\u201d action onto the Workflow canvas. Your canvas will now contain the Shell Script form.&nbsp; If you see the word \u201ccat\u201d in your shell script, you can delete it.&nbsp; This is provided by Automator for testing purposes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660930506\/quickactionmac14.png\" alt=\"\" \/><\/figure>\n\n\n\n<p>In 2019, Apple started using the <strong>zsh<\/strong> shell, instead of the <strong>bash<\/strong> shell for your terminal interface. You will likely see <strong>\/bin\/zsh<\/strong> selected as your shell, but if for some reason, you are using a different shell, select it in the Shell Script form.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660930506\/quickactionmac13.png\" alt=\"\" \/><\/figure>\n\n\n\n<p>Your Shell script may contain the command &#8216;cat&#8217;. This is the shell command for listing file contents that is only there for testing. Since we&#8217;ll be replacing it with our own shell commands, you can delete it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Install the \u201cjq\u201d Library in your Shell<\/strong><\/h3>\n\n\n\n<p>When we successfully upload an image to Cloudinary, the response will contain the secure URL that allows us to access our uploaded image. The response is in JSON format. The <a href=\"https:\/\/stedolan.github.io\/jq\/\"><strong>jq<\/strong><\/a> library will allow us to parse the response and extract the secure URL.<\/p>\n\n\n\n<p>Use Homebrew to install the jq library in your Terminal.<\/p>\n\n\n\n<p><code>brew install jq<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Adding the Shell Script<\/strong><\/h3>\n\n\n\n<p>The shell script that we are going to add to this action will look like the image below. Let\u2019s break this down, so that you can enter the information specific to your Mac libraries.&nbsp; A copy\/paste version is available below the image breakdown.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660930505\/quickactionmac12.png\" alt=\"\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\"><li>Start by exporting your <strong>CLOUDINARY_URL<\/strong>. You can find this in your dashboard, as we described in the section, \u201cGet Your Cloudinary Credentials\u201d. Remember to type the word \u201cexport\u201d before inserting your CLOUDINARY_URL.<\/li><li>The <strong>for f in \u201c$@\u201d<\/strong> expression is how Automator will hand a set of file paths to the Quick Action shell script. Automator is taking into account the fact that a user may have selected multiple files in Finder before clicking on the Quick Action. You\u2019ll see \u201c$f\u201d in the script, which refers to a single file. There could be more than one file selected for a Quick Action so Automator provides a way to share one file at a time.<\/li><li>You can use the \u201c<strong>which\u201d<\/strong> command in your terminal shell to find the full path to your Cloudinary CLI and your jq library. You will need to supply the full path in the final step. This step uses pipes to execute multiple commands, starting with uploading the selected file to Cloudinary using the <strong>cld uploader<\/strong> command. When the response is returned, it is piped to the <strong>jq<\/strong> command, and the secure URL is extracted from the Cloudinary response. Finally, the secure URL is piped to the Mac <strong>pbcopy<\/strong> command, which copies the secure URL into the clipboard. In the example, <strong>cld<\/strong> and <strong>jq<\/strong> are located in \/opt\/homebrew\/bin, because they were both installed using brew but can differ on your machine.<\/li><\/ol>\n\n\n\n<p><code>which cld<\/code><\/p>\n\n\n\n<p><code>which jq<\/code><\/p>\n\n\n\n<p><code>export CLOUDINARY_URL=cloudinary:\/\/&lt;API_KEY&gt;:&lt;API_SECRET&gt;@&lt;CLOUD_NAME<\/code><\/p>\n\n\n\n<p><code>for f in \"$@\"<\/code><\/p>\n\n\n\n<p><code>do<\/code><\/p>\n\n\n\n<p><code>&lt;folder containing Cloudinary CLI&gt;\/cld uploader upload \"$f\" | &lt;folder containing jq library&gt;jq -r '.secure_url' | \/usr\/bin\/pbcopy<\/code><\/p>\n\n\n\n<p><code>done<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Adding the Script to the Shell Script Form<\/strong><\/h3>\n\n\n\n<p>Next, you\u2019ll paste your script into the Shell Script form. You\u2019ll also need to change the \u201c<strong>Pass input:<\/strong>\u201d selection to \u201c<strong>as arguments<\/strong>\u201d instead of \u201cstdin\u201d. Be sure that you have identified the full path to your <strong>cld<\/strong> and <strong>jq<\/strong> installations using the \u201c<strong>which<\/strong>\u201d command in your terminal.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660930504\/quickactionmac11.png\" alt=\"\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Name and Save the Quick Action<\/strong><\/h3>\n\n\n\n<p>To complete the creation of your Quick Action, click on File | Save and provide a name.&nbsp; The name you provide is what will show up in the list of Quick Actions in Finder.&nbsp;&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Testing your Quick Action<\/strong><\/h3>\n\n\n\n<p>Head over to Finder and select an image by right-clicking its file name. You should find your custom Quick Action in the list of actions.&nbsp; Click on your custom Quick Action.&nbsp;<\/p>\n\n\n\n<p>If everything was installed correctly, you should be able to go to your browser and paste the Cloudinary secure URL into the browser and pull up the image you uploaded. I have uploaded a local copy of the Cloudinary Sample image in the clip below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660930508\/quicactionmac11.gif\" alt=\"\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Troubleshooting<\/strong><\/h2>\n\n\n\n<p>If your Quick Action didn\u2019t result in a successful upload or your clipboard didn\u2019t contain the URL from the Cloudinary upload response, you can try running the commands in your shell script directly in the terminal. Paste these commands to see if the upload works. Be sure that you are using your specific CLOUDINARY_URL and not the general version shown in the examples.<\/p>\n\n\n\n<p><code>export CLOUDINARY_URL=cloudinary:\/\/&lt;API_KEY&gt;:&lt;API_SECRET&gt;@&lt;CLOUD_NAME<\/code><\/p>\n\n\n\n<p>Next, run the Cloudinary CLI upload command with the path to your file. You should be able to do this by supplying the relative or absolute path to your file.<\/p>\n\n\n\n<p>For example, if you are running the command inside the directory that contains your image \u201cgreen-car.jpg\u201d, your test command would look like this:<\/p>\n\n\n\n<p><code>cld uploader upload .\/green-car.jpg<\/code><\/p>\n\n\n\n<p>After running that command, look at the response and locate the Public ID.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660930504\/quickactionmac10.png\" alt=\"\" \/><\/figure>\n\n\n\n<p>Then, navigate to your Media Library to see whether your image was successfully uploaded.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660930504\/quickactionmac9.png\" alt=\"\" \/><\/figure>\n\n\n\n<p>If that worked, then try the set of three piped commands in your terminal, starting with exporting your CLOUDINARY_URL<\/p>\n\n\n\n<p><code>export CLOUDINARY_URL=cloudinary:\/\/&lt;API_KEY&gt;:&lt;API_SECRET&gt;@&lt;CLOUD_NAME<\/code><\/p>\n\n\n\n<p><code>\/usr\/local\/bin\/cld uploader upload .\/green-car.jpg | \/usr\/local\/bin\/jq -r '.secure_url' | \/usr\/bin\/pbcopy<\/code><\/p>\n\n\n\n<p>After running the piped command, go to your browser and paste what is in the clipboard into the browser address input. If this works, make sure your Quick Action script contains the same information, and try it again.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660930504\/Quickactionmac8.png\" alt=\"\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Controlling Quick Action Access<\/strong><\/h3>\n\n\n\n<p>If you want to turn off access to any Quick Actions, whether they are provided by Apple or are custom, you\u2019ll find them in Extensions within Apple Preferences. Click on Finder to see the Quick Actions and check or uncheck them to make them available.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1660930504\/quickactionmac7.png\" alt=\"\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>Setting up a workflow with any tool involves breaking down the task into steps. You\u2019ve combined five technologies here to be able to quickly upload your image to Cloudinary: Python, Cloudinary Python SDK, Cloudinary CLI, <strong>zsh<\/strong> command shell, and Automator Quick Actions.<\/p>\n\n\n\n<p>You started by locating your Cloudinary credentials. Then, you installed Python and the Cloudinary Python SDK. On top of that, you installed the Cloudinary CLI. Next, you installed the jq library into your Shell, so that you could extract data out of the Cloudinary JSON upload response. Finally, you set up a Quick Action using the Mac Automator to call a short shell script that performed an upload. Now you can upload from your Finder and use the URL in your clipboard to work with your cloud-based image.<\/p>\n\n\n\n<p>But this is just the beginning! Now that you know how to use the Cloudinary CLI, you can use the Automator to make other CLI calls.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever used the Mac Finder Quick Actions? Quick Actions workflows are visible when you right-click on a file in Finder. There are built-in Quick Actions like \u201cCreate PDF\u201d, and now, you can create your own Quick Actions to automate custom tasks.\u00a0\u00a0 Here, you\u2019ll learn how to create your own Finder Quick Action that [&hellip;]<\/p>\n","protected":false},"author":54,"featured_media":24918,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-24917","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac<\/title>\n<meta name=\"description\" content=\"Learn how to create a Quick Action to Upload Images from the Mac Finder to Cloudinary.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac\ufffc\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac\" \/>\n<meta property=\"og:description\" content=\"Learn how to create a Quick Action to Upload Images from the Mac Finder to Cloudinary.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac\ufffc\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-23T14:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-23T15:48:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1-png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"902\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac\",\"datePublished\":\"2022-08-23T14:30:00+00:00\",\"dateModified\":\"2022-08-23T15:48:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc\"},\"wordCount\":2027,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1.png?_i=AA\",\"inLanguage\":\"en-US\",\"copyrightYear\":\"2022\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc\",\"url\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc\",\"name\":\"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1.png?_i=AA\",\"datePublished\":\"2022-08-23T14:30:00+00:00\",\"dateModified\":\"2022-08-23T15:48:44+00:00\",\"description\":\"Learn how to create a Quick Action to Upload Images from the Mac Finder to Cloudinary.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1.png?_i=AA\",\"width\":1600,\"height\":902},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac","description":"Learn how to create a Quick Action to Upload Images from the Mac Finder to Cloudinary.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac\ufffc","og_locale":"en_US","og_type":"article","og_title":"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac","og_description":"Learn how to create a Quick Action to Upload Images from the Mac Finder to Cloudinary.","og_url":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac\ufffc","og_site_name":"Cloudinary Blog","article_published_time":"2022-08-23T14:30:00+00:00","article_modified_time":"2022-08-23T15:48:44+00:00","og_image":[{"width":1600,"height":902,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1-png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc"},"author":{"name":"","@id":""},"headline":"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac","datePublished":"2022-08-23T14:30:00+00:00","dateModified":"2022-08-23T15:48:44+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc"},"wordCount":2027,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1.png?_i=AA","inLanguage":"en-US","copyrightYear":"2022","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc","url":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc","name":"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1.png?_i=AA","datePublished":"2022-08-23T14:30:00+00:00","dateModified":"2022-08-23T15:48:44+00:00","description":"Learn how to create a Quick Action to Upload Images from the Mac Finder to Cloudinary.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1.png?_i=AA","width":1600,"height":902},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/upload-image-files-to-cloudinary-using-a-finder-custom-quick-action-on-a-mac%ef%bf%bc#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Upload Image Files to Cloudinary using a Finder Custom Quick Action on a Mac"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1660926246\/Custom_Quick_Action_On_Mac_1\/Custom_Quick_Action_On_Mac_1.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/24917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/54"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=24917"}],"version-history":[{"count":14,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/24917\/revisions"}],"predecessor-version":[{"id":24950,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/24917\/revisions\/24950"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/24918"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=24917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=24917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=24917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}