{"id":21493,"date":"2017-03-29T17:15:20","date_gmt":"2017-03-29T17:15:20","guid":{"rendered":"http:\/\/migrating_your_media_assets_to_the_cloud_using_cloudinary"},"modified":"2024-05-29T16:45:08","modified_gmt":"2024-05-29T23:45:08","slug":"migrating_your_media_assets_to_the_cloud_using_cloudinary","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary","title":{"rendered":"Migrating your Media Assets to the Cloud Using Cloudinary"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>When analyzing use of website or mobile application storage, there\u2019s no doubt that media files, such as video clips and images, use the most space. Migrating these files to the cloud and storing them in a location where they are available online makes perfect sense, but images and videos often require additional transformations before they are delivered to end users.<\/p>\n<p>Images need to be transformed to optimal formats, resized and cropped for various aspect ratios, especially if you have a responsive site. In addition, you may want to apply special effects and overlays. Videos, too, need to be optimized for web delivery, transcoded to support different resolution options and streamed using adaptive streaming, as well as making other modifications. Then, when your media files are stored on the cloud, you\u2019ll want fast delivery via content deliver networks (CDNs) to ensure a great user experience.<\/p>\n<p>Cloudinary, a cloud-based service that supports all image and video management needs for websites and mobile apps, delivers all of these capabilities. In order to start using Cloudinary, you first need to set up a free plan to start. Then you will have to migrate your images and videos to your Cloudinary account. Here\u2019s how you get started:<\/p>\n<h2>Requirements<\/h2>\n<p>The code samples provided here are in Node.js. However Cloudinary publishes SDKs in several languages. You can find the various options listed <a href=\"https:\/\/cloudinary.com\/documentation\">here<\/a>.<\/p>\n<p>In case your development language isn\u2019t there, Cloudinary supports the option of uploading images using a direct HTTP call to the API, as explained <a href=\"https:\/\/cloudinary.com\/documentation\/upload_images#uploading_with_a_direct_call_to_the_rest_api\">here<\/a>.<\/p>\n<p>Image manipulation and delivery also can be implemented by providing the transformation parameters as part of the URL directly.<\/p>\n<h2>Installation<\/h2>\n<p>1.Open a <strong>Cloudinary<\/strong> free account.<br>\nGo to <a href=\"https:\/\/cloudinary.com\/\">Cloudinary<\/a> and click \u201csign up for free.\u201d  Fill out the registration form. Here you can change your default cloud name to your preferred name.  In these examples my cloud name is <strong>\u201ccld-name.\u201d<\/strong><\/p>\n<p>2.Follow the instructions according to the required SDK documentation as listed <a href=\"https:\/\/cloudinary.com\/documentation\">here<\/a>.<\/p>\n<h2>Migration Planning<\/h2>\n<p>Much like when you move to a new apartment, you need to ask yourself, do I need to move all my files or is it a good opportunity to leave some of it behind? To answer those questions, let\u2019s consider several migration options, each fitting with a different scenario.<\/p>\n<p><strong>Migrating all existing content in one phase<\/strong> \u2013 This requires uploading all your media files. This option fits one of the following use cases:<\/p>\n<ul>\n<li>All of your images and videos are actively used.<\/li>\n<li>You intend to shut down your existing media storage.<\/li>\n<\/ul>\n<p>Implement this migration by creating a script that runs on your media assets and for each file it calls the upload API call. Cloudinary\u2019s upload API call supports uploading files from various sources, including a local path, a remote HTTP or HTTPS URL, a remote S3 URL, a Data URI or an FTP URL.<\/p>\n<p>When uploading a file, you can define your own unique Id (as shown below). If it is not defined, the call will create one randomly. Here is an example of uploading a file from your local computer:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>cloudinary.v2.uploader.upload(&quot;local_folder\/image.jpg&quot;, {public_id: &quot;my_image&quot;}, \nfunction(error, result) { console.log(error,result) });\n<\/code><\/pre>\n<p><strong>Lazy migration<\/strong> \u2013 Uploading a media file only when it is requested by your website or app user for the first time. This option is effective when you have a long tail of media assets, not all of them are active, and you are not sure which ones are still in use.<\/p>\n<p>Using the Cloudinary management console or the API, you can define a mapping between a folder name in your Cloudinary media library and a base remote URL, which links to your images online folder. For example, if your images are available at:\n<code>https:\/\/example.fileserver.com\/media\/<\/code>, the API call shown below will map <code>https:\/\/example.fileserver.com\/media\/<\/code> to a <strong>Cloudinary<\/strong> folder called: <strong>media<\/strong><\/p>\n<pre class=\"js-syntax-highlighted\"><code>cloudinary.v2.api.create_upload_mapping('media',\n    { template: &quot;https:\/\/example.fileserver.com\/media\/&quot; },\n    function(error, result) { console.log(error,result) });\n<\/code><\/pre>\n<p>Now, in order to automatically upload <code>koala.jpg<\/code>, you need to replace, on your front end, the image URL:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">https:<span class=\"hljs-comment\">\/\/example.fileserver.com\/media\/koala.jpg<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>With the following URL:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">https:<span class=\"hljs-comment\">\/\/res.cloudinary.com\/cld-name\/image\/upload\/media\/koala.jpg<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>The first user who calls the Cloudinary URL will trigger an automatic upload of the image to Cloudinary. Any subsequent request for the same image will be delivered via the CDN.<\/p>\n<p>The Cloudinary URL is constructed as follows:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\">res.cloudinary.com\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">cloud-name<\/span>&gt;<\/span>\/image\/upload\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">mapped-folder<\/span>&gt;<\/span>\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">partial-path-of-remote-image<\/span>&gt;<\/span>*\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>The following API call also will return the required URL:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>cloudinary.url(&quot;media\/koala.jpg&quot;);\n<\/code><\/pre>\n<p><strong>Hybrid approach<\/strong> \u2013 Run a script to upload the \u201chot\u201d group of your most commonly used media assets and use the \u201clazy migration\u201d option to upload the rest. This option works best when you have a defined subset of your media assets that drives most of your traffic.<\/p>\n<p><strong>Fetch assets<\/strong> \u2013 Fetch media assets from remote locations and store them for a predefined period. Use this option when your images and videos originate from various online sources and they are used for a short timespan, as in news items.<\/p>\n<p>For example, the following code is used to deliver a remote image of Jennifer Lawrence fetched by Cloudinary from WikiMedia.<\/p>\n<pre class=\"js-syntax-highlighted\"><code>cloudinary.url(&quot;http:\/\/upload.wikimedia.org\/wikipedia\/commons\/4\/46\/Jennifer_Lawrence_at_the_83rd_Academy_Awards.jpg&quot;, {type: &quot;fetch&quot;});\n<\/code><\/pre>\n<p>The equivalent URL is:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">https:<span class=\"hljs-comment\">\/\/res.cloudinary.com\/cld-name\/image\/fetch\/http:\/\/upload.wikimedia.org\/wikipedia\/commons\/4\/46\/Jennifer_Lawrence_at_the_83rd_Academy_Awards.jpg<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p><strong>Uploading Large Files<\/strong> \u2013 If you are uploading files larger than 100MB, there is an option to do a chunked upload:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>cloudinary.v2.uploader.upload_large(&quot;my_large_image.tiff&quot;, \n    { resource_type: &quot;image&quot;, chunk_size: 6000000 }, \n    function(error, result) { console.log(error,result) });\n<\/code><\/pre>\n<h2>Which files to upload?<\/h2>\n<p>Cloudinary is able to manipulate images and videos on-the-fly upon request or upon upload, so you only need to upload the highest resolution of one image or video. There is no need to upload large\/medium\/small variants.<\/p>\n<h2>Access Control<\/h2>\n<p>If all of your media assets are not public, you can upload them and restrict their availability:<\/p>\n<ul>\n<li>\n<strong>Private files<\/strong> \u2013 The original files are not available unless accessed via a signed URL. Another option to provide access is creating a time-expired download URL. The following code example uploads the file as private:<\/li>\n<\/ul>\n<pre class=\"js-syntax-highlighted\"><code>cloudinary.v2.uploader.upload(&quot;local_folder\/private_image.jpg&quot;, {type: &quot;private&quot;}, \nfunction(error, result) { console.log(error,result) });\n<\/code><\/pre>\n<ul>\n<li>\n<p><strong>Authenticated files<\/strong> &#8211; The original files, as well as their derived ones, are not available unless accessed via a signed URL. For increased security, cookie-based authentication can be setup as well, in order to access them.<\/p>\n<\/li>\n<li>\n<p><strong>Whitelisting referral domains<\/strong> \u2013 An additional optional security layer that restricts the access to your media assets is to setup a whitelist of referral domains. Then only URL requests arriving from those domains are allowed to access the file.<\/p>\n<\/li>\n<\/ul>\n<h2>Setting an Upload Policy Using an Upload Preset<\/h2>\n<p>A convenient way to create a centralized upload policy is defining an upload preset. This enables you to define the transformations you would like to do once, then use the preset name to activate it upon upload. You can define several upload presets and use them according to different policies you have, for example watermark all images or transcode a video rendition of 640p wide resolution.<\/p>\n<p>When you define an upload preset, you can set a transformation that will change the original file and then only the transformed file will be stored. This option is called an <strong>incoming transformation<\/strong>. You can also define transformations that will be created as derived files, which will be stored in addition to the original file. This process is called an <strong>eager transformation<\/strong>. Using Cloudinary, you can transform the images and video on-the-fly, therefore these options are required for cases where you would like to process the transformation immediately upon upload.<\/p>\n<p>As an example, the following code creates an upload preset that adds the tag <code>remote<\/code>.  The <code>unsigned<\/code> parameter determines if the preset can be used for unsigned uploads, which can be done from the client side without having the API secret. The <code>allowed_formats<\/code> parameter defines the file formats allowed to be used with this preset.<\/p>\n<pre class=\"js-syntax-highlighted\"><code>cloudinary.v2.api.create_upload_preset({ name: &quot;my_preset&quot;, \n    unsigned: true, tags: &quot;remote&quot;, allowed_formats: &quot;jpg,png&quot; },\n    function(error, result) { console.log(error,result) });\n<\/code><\/pre>\n<p>The following code uploads an image using this upload preset:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>cloudinary.v2.uploader.upload(&quot;smiling_man.jpg&quot;, \n    { public_id: \u201csmile\u201d, upload_preset: &quot;my_preset&quot; }, \n    function(error, result) { console.log(error,result) });\n<\/code><\/pre>\n<h2>Upload Response<\/h2>\n<p>As a response to the upload call, you get some important information back. The response looks like this:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>{ public_id: 'smile',\n  version: 1482935950,\n  signature: 'bfd5019ee4f513f30226cc06c750b2ad6eccceef',\n  width: 1743,\n  height: 1307,\n  format: 'jpg',\n  resource_type: 'image',\n  created_at: '2016-12-28T14:39:10Z',\n  tags: [],\n  bytes: 642781,\n  type: 'upload',\n  etag: '7c26a0d7b72b6621bba1110da25d099e',\n  url: 'https:\/\/res.cloudinary.com\/hadar-staging\/image\/upload\/v1482935950\/smile.jpg',\n  secure_url: 'https:\/\/res.cloudinary.com\/hadar-staging\/image\/upload\/v1482935950\/smile.jpg',\n  original_filename: 'smiling_man' }\n<\/code><\/pre>\n<h2>Notification URL<\/h2>\n<p>You can tell Cloudinary to notify your application as soon as the upload completes by adding the <code>notification_url<\/code> parameter to the upload method and setting it to any valid HTTP or HTTPS URL. You also can set the <code>notification_url<\/code> parameter globally for all uploads on the Upload Settings page in the Cloudinary Management Console, instead of individually for each upload call.<\/p>\n<h2>Uploading New Files<\/h2>\n<p>Following a successful migration, you need to start uploading all new media assets to Cloudinary. There are several ways to do it: manually via the Cloudinary account console, calling the upload API, or using automatic upload. Another easy way to do this is using the ready-made upload widget.<\/p>\n<h2>Upload Widget<\/h2>\n<p>Cloudinary\u2019s upload widget includes a complete graphical interface. The widget supports a drag and drop functionality, interactive cropping, upload progress indication and thumbnail previews. The widget also monitors and handles uploading errors. The following code example shows how to open the widget:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>&lt;script src=&quot;\/\/widget.cloudinary.com\/global\/all.js&quot; type=&quot;text\/javascript&quot;&gt;  \n&lt;\/script&gt;\n&lt;script&gt;\n  cloudinary.setCloudName('cld-name');\n  cloudinary.openUploadWidget({upload_preset: 'my_preset'}, \n  function(error, result) {console.log(error, result)});\n&lt;\/script&gt;\n<\/code><\/pre>\n<p>More information regarding the widget functionality is available <a href=\"https:\/\/cloudinary.com\/documentation\/upload_widget\">here<\/a>.<\/p>\n<h2>Summary<\/h2>\n<p>The steps detailed above are just the beginning of the journey of moving your media assets to the cloud. Once uploaded, Cloudinary supports a long list of <a href=\"https:\/\/cloudinary.com\/documentation\/transformation_reference\">image manipulation options<\/a>, and the same goes for <a href=\"https:\/\/cloudinary.com\/documentation\/video_manipulation_and_delivery#video_transformations_reference\">video<\/a>. In addition, images can be optimized for faster delivery and support <a href=\"https:\/\/cloudinary.com\/documentation\/responsive_images\">responsive design<\/a>.<\/p>\n<p>Now is the time to let go, send your media assets to the cloud and set them free.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":21494,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[25,53,119],"class_list":["post-21493","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-asset-management","tag-cloud-storage","tag-file-upload"],"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>Easily Migrate your Media Assets to the Cloud with Cloudinary<\/title>\n<meta name=\"description\" content=\"This is a step by step guide to migrating your media assets to the cloud with 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\/migrating_your_media_assets_to_the_cloud_using_cloudinary\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migrating your Media Assets to the Cloud Using Cloudinary\" \/>\n<meta property=\"og:description\" content=\"This is a step by step guide to migrating your media assets to the cloud with Cloudinary.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-29T17:15:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-29T23:45:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_-png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"770\" \/>\n\t<meta property=\"og:image:height\" content=\"424\" \/>\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\/migrating_your_media_assets_to_the_cloud_using_cloudinary#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Migrating your Media Assets to the Cloud Using Cloudinary\",\"datePublished\":\"2017-03-29T17:15:20+00:00\",\"dateModified\":\"2024-05-29T23:45:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary\"},\"wordCount\":9,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_.png?_i=AA\",\"keywords\":[\"Asset Management\",\"Cloud Storage\",\"File-upload\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2017\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary\",\"url\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary\",\"name\":\"Easily Migrate your Media Assets to the Cloud with Cloudinary\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_.png?_i=AA\",\"datePublished\":\"2017-03-29T17:15:20+00:00\",\"dateModified\":\"2024-05-29T23:45:08+00:00\",\"description\":\"This is a step by step guide to migrating your media assets to the cloud with Cloudinary.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_.png?_i=AA\",\"width\":770,\"height\":424},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrating your Media Assets to the Cloud Using Cloudinary\"}]},{\"@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":"Easily Migrate your Media Assets to the Cloud with Cloudinary","description":"This is a step by step guide to migrating your media assets to the cloud with 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\/migrating_your_media_assets_to_the_cloud_using_cloudinary","og_locale":"en_US","og_type":"article","og_title":"Migrating your Media Assets to the Cloud Using Cloudinary","og_description":"This is a step by step guide to migrating your media assets to the cloud with Cloudinary.","og_url":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary","og_site_name":"Cloudinary Blog","article_published_time":"2017-03-29T17:15:20+00:00","article_modified_time":"2024-05-29T23:45:08+00:00","og_image":[{"width":770,"height":424,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_-png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary"},"author":{"name":"","@id":""},"headline":"Migrating your Media Assets to the Cloud Using Cloudinary","datePublished":"2017-03-29T17:15:20+00:00","dateModified":"2024-05-29T23:45:08+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary"},"wordCount":9,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_.png?_i=AA","keywords":["Asset Management","Cloud Storage","File-upload"],"inLanguage":"en-US","copyrightYear":"2017","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary","url":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary","name":"Easily Migrate your Media Assets to the Cloud with Cloudinary","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_.png?_i=AA","datePublished":"2017-03-29T17:15:20+00:00","dateModified":"2024-05-29T23:45:08+00:00","description":"This is a step by step guide to migrating your media assets to the cloud with Cloudinary.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_.png?_i=AA","width":770,"height":424},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/migrating_your_media_assets_to_the_cloud_using_cloudinary#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Migrating your Media Assets to the Cloud Using Cloudinary"}]},{"@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\/v1649724424\/Web_Assets\/blog\/Migrate_Blog_\/Migrate_Blog_.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21493","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\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=21493"}],"version-history":[{"count":5,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21493\/revisions"}],"predecessor-version":[{"id":34138,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21493\/revisions\/34138"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21494"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}