{"id":1648,"date":"2018-02-26T09:36:14","date_gmt":"2018-02-26T08:36:14","guid":{"rendered":"http:\/\/blogs.encamina.com\/por-una-nube-sostenible\/?p=1648"},"modified":"2018-02-26T09:36:14","modified_gmt":"2018-02-26T08:36:14","slug":"moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/","title":{"rendered":"Moviendo ficheros de un blob a otro a la velocidad de la luz"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1687\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg\" alt=\"Moviendo ficheros de un blob a otro a la velocidad de la luz\" width=\"750\" height=\"400\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg 750w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz-300x160.jpg 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/>Muchas veces en un entorno cloud, y en concreto en <strong>Azure<\/strong>, nos encontramos en la necesidad de mover todos los ficheros de un <strong>Blob Storage<\/strong> a otro.<\/p>\n<p><!--more--><\/p>\n<h2><span class=\"ez-toc-section\" id=\"El_Pasado\"><\/span><strong>El Pasado<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Hasta hace poco ten\u00edamos tres opciones para hacerlo:<\/p>\n<ul>\n<li>Por <strong>AzCopy<\/strong>.<\/li>\n<li>Por la aplicaci\u00f3n de <strong>Microsoft Azure Sotrage<\/strong>.<\/li>\n<li>O bien mediante c\u00f3digo.<\/li>\n<\/ul>\n<p>Al final la opci\u00f3n escogida normalmente es por <strong>AzCopy<\/strong> ya que las otras dos opciones tienen muchos inconvenientes y\/o incomodidades, por lo que nos encontramos con el problema de que no podemos escribir un c\u00f3digo que nos mueva los ficheros de un <strong>Blob<\/strong> a otro , que sea \u00f3ptimo, r\u00e1pido y aproveche toda la computaci\u00f3n del <em>hardware<\/em>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"El_Presente\"><\/span><strong>El Presente<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Hace poquitos meses ya podemos escribir c\u00f3digo que nos permite realizar estas operaciones.\u00a0 <strong>Azure Storage Data Movement Library (<\/strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-use-data-movement-library\">https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-use-data-movement-library<\/a><strong>)<\/strong> es una librer\u00eda de Microsoft que se basa en la tecnolog\u00eda de <strong>AzCopy<\/strong> que nos permite realizar estas operaciones.<\/p>\n<p>\u00bfQu\u00e9 podemos hacer con esta librer\u00eda?<\/p>\n<ul>\n<li>Definir el n\u00famero operaciones en paralelo que deseamos utilizar para subir, actualizar o bajar ficheros.<\/li>\n<li>El tama\u00f1o de bloque a utilizar. Cuando interactuamos con ficheros las operaciones nunca se hacen de golpe, sino que se hace mediante trocitos, denominados <em>chunks<\/em>, con el fin de optimizar las conexiones.<\/li>\n<li>Saber el progreso de transferencia.<\/li>\n<li>Subir ficheros y directorios a un Blob Storage.<\/li>\n<li>Copiar ficheros de una URL a un Blobl Storage.<\/li>\n<li>O como ya hemos comentado copiar ficheros de un Blob Storage a otro.<\/li>\n<\/ul>\n<p>Perfecto, ahora ya tenemos una librer\u00eda que nos permite realizar c\u00f3digo para el objetivo deseado y de forma \u00f3ptima y r\u00e1pida, ahora solos nos queda tener suficientes m\u00e1quinas para llevar a cabo la operaci\u00f3n de la forma m\u00e1s r\u00e1pida.<\/p>\n<p>Pues bien, lo tenemos a nuestro alcance, simplemente hemos de utilizar <strong>Durable Azure Functions <\/strong>con <strong>Azure Storage Data Movement<\/strong> para paralelizar estas operaciones.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Demo_Time\"><\/span><strong>Demo Time<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Vamos a ver c\u00f3mo hacerlo.<\/p>\n<p>Crearemos una <strong>Durable Azure Function<\/strong> que lo que har\u00e1 es ir al <strong>Blob Storage<\/strong> de origen, obtener el nombre de todos los ficheros a mover, y despu\u00e9s llamar a tantas funciones como archivos haya que lo que hagan es mover el fichero de un <strong>Blob<\/strong> a otro.<\/p>\n<p>La <strong>Azure Durable Functions<\/strong> finalizar\u00e1 cuando todas las funciones de subida de ficheros hayan acabado.<\/p>\n<p>El c\u00f3digo de la<strong> Azure Durable Function<\/strong> ser\u00eda:<\/p>\n<p><a href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1652\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/1-300x192.jpg\" alt=\"\" width=\"750\" height=\"480\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/1-300x192.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/1-768x491.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/1-1024x654.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/1.jpg 1578w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/a><\/p>\n<p>Donde la funci\u00f3n <strong>GetBloBNames<\/strong> devuelve el listado de ficheros a mover.<\/p>\n<p>Despu\u00e9s tenemos la funci\u00f3n <strong>CopyBlob<\/strong> que tiene la forma siguiente:<\/p>\n<p><a href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1656\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-2-300x212.jpg\" alt=\"\" width=\"636\" height=\"449\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-2-300x212.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-2-768x542.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-2-1024x723.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-2.jpg 1578w\" sizes=\"auto, (max-width: 636px) 100vw, 636px\" \/><\/a><\/p>\n<p>Obtenemos la URI del Blob de origen, el de destino y mediante <strong>TransferManager.CopyBlob<\/strong> que es un m\u00e9todo de la librer\u00eda <strong>Azure Storage Data Movement<\/strong> lo llevamos de una al otro.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Show_me_the_result\"><\/span><strong>Show me the result<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Vale, de acuerdo \u00bfquer\u00e9is pruebas de que esto es la bomba? Ah\u00ed van :<\/p>\n<p>Blob de origen &#8211;&gt; West Europe \u2013 198 ficheros 11,3 Gb en total<\/p>\n<p>Blob de destino &#8211;&gt; North Europe.<\/p>\n<p><a href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1659\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-3-300x200.jpg\" alt=\"\" width=\"772\" height=\"516\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-3-300x200.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-3-768x512.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-3-1024x683.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-3.jpg 1297w\" sizes=\"auto, (max-width: 772px) 100vw, 772px\" \/><\/a><\/p>\n<p>Imagen 1: La prueba que los Blobs est\u00e1n en regiones diferentes<\/p>\n<p>Blob de origen:<\/p>\n<p><a href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1660\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-4-300x200.jpg\" alt=\"\" width=\"674\" height=\"449\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-4-300x200.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-4-768x512.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-4-1024x683.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-4.jpg 1297w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><\/a><\/p>\n<p>Imagen 2: N\u00famero de ficheros en el Blob de origen<\/p>\n<p>Blob de destino despu\u00e9s de lanzar el proceso:<\/p>\n<p><a href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-5.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1661\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-5-300x200.jpg\" alt=\"\" width=\"674\" height=\"449\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-5-300x200.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-5-768x512.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-5-1024x683.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-5.jpg 1297w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><\/a><\/p>\n<p>Imagen 3: N\u00famero de ficheros en el Blob de destino despu\u00e9s del proceso.<\/p>\n<p>Tiempo del proceso:<\/p>\n<p><a href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1662\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-6-300x191.jpg\" alt=\"\" width=\"721\" height=\"459\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-6-300x191.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-6-768x490.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-6-1024x653.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-6.jpg 1297w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/a><\/p>\n<p>Imagen 4: Traza de inicio del proceso.<\/p>\n<p><a href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1663\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-7-300x200.jpg\" alt=\"\" width=\"754\" height=\"504\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-7-300x200.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-7-768x512.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-7-1024x683.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/AzureDataMovement-7.jpg 1297w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><\/a><\/p>\n<p>Imagen 5: Traza de fin del proceso.<\/p>\n<p>Como se puede observar hemos transferido <strong>198 ficheros<\/strong> de <strong>11,3 Gb<\/strong> de un <strong>Blob<\/strong> a otro de diferentes regiones en <strong>7 minutos aproximadamente<\/strong>.<\/p>\n<p>El c\u00f3digo completo lo pod\u00e9is descargar en:<\/p>\n<p><a href=\"https:\/\/github.com\/bermejoblasco\/DataMovement-DurableFunctions\">https:\/\/github.com\/bermejoblasco\/DataMovement-DurableFunctions<\/a><\/p>\n<p>Happy coding!<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#El_Pasado\" >El Pasado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#El_Presente\" >El Presente<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#Demo_Time\" >Demo Time<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#Show_me_the_result\" >Show me the result<\/a><\/li><\/ul><\/nav><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Muchas veces en un entorno cloud, y en concreto en Azure, nos encontramos en la necesidad de mover todos los ficheros de un Blob Storage a otro.<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":180,"featured_media":1687,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1648","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Moviendo ficheros de un blob a otro a la velocidad de la luz | ENCAMINA<\/title>\n<meta name=\"description\" content=\"Robert Bermejo explica c\u00f3mo mover todos los ficheros de un Blob Storage a otro.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Moviendo ficheros de un blob a otro a la velocidad de la luz\" \/>\n<meta property=\"og:description\" content=\"Robert Bermejo explica c\u00f3mo mover todos los ficheros de un Blob Storage a otro.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/\" \/>\n<meta property=\"og:site_name\" content=\"Por una nube sostenible\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-26T08:36:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"750\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Robert Bermejo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Robert Bermejo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/\"},\"author\":{\"name\":\"Robert Bermejo\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#\\\/schema\\\/person\\\/68bf0b11185930e37ca20de48f3a1d5d\"},\"headline\":\"Moviendo ficheros de un blob a otro a la velocidad de la luz\",\"datePublished\":\"2018-02-26T08:36:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/\"},\"wordCount\":610,\"commentCount\":2,\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2018\\\/02\\\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg\",\"articleSection\":[\"Azure\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/\",\"name\":\"Moviendo ficheros de un blob a otro a la velocidad de la luz | ENCAMINA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2018\\\/02\\\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg\",\"datePublished\":\"2018-02-26T08:36:14+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#\\\/schema\\\/person\\\/68bf0b11185930e37ca20de48f3a1d5d\"},\"description\":\"Robert Bermejo explica c\u00f3mo mover todos los ficheros de un Blob Storage a otro.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2018\\\/02\\\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2018\\\/02\\\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg\",\"width\":750,\"height\":400,\"caption\":\"Moviendo ficheros de un blob a otro a la velocidad de la luz\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Moviendo ficheros de un blob a otro a la velocidad de la luz\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/\",\"name\":\"Por una nube sostenible\",\"description\":\"C\u00f3mo no romper los l\u00edmites, c\u00f3mo crear una buena arquitectura y c\u00f3mo hacer un buen mantenimiento\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#\\\/schema\\\/person\\\/68bf0b11185930e37ca20de48f3a1d5d\",\"name\":\"Robert Bermejo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g\",\"caption\":\"Robert Bermejo\"},\"description\":\"Robert Bermejo lleva m\u00e1s de 10 a\u00f1os en el mundo Microsoft, principalmente en entornos web y desde hace 4 a\u00f1os en Azure, siendo MVP en esta categor\u00eda. Organizador de la comunidad de Azure en Barcelona (@CAT_zure) donde mensualmente organiza meetups sobre esta tem\u00e1tica, tambi\u00e9n escribe en la revista CompartiMOSS as\u00ed como se le puede ver en los diversos eventos nacionales hablando sobre Azure. Actualmente es Team Leader en ENCAMINA y se puede decir que vive en la nube ;)\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/author\\\/rbermejo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Moviendo ficheros de un blob a otro a la velocidad de la luz | ENCAMINA","description":"Robert Bermejo explica c\u00f3mo mover todos los ficheros de un Blob Storage a otro.","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:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/","og_locale":"es_ES","og_type":"article","og_title":"Moviendo ficheros de un blob a otro a la velocidad de la luz","og_description":"Robert Bermejo explica c\u00f3mo mover todos los ficheros de un Blob Storage a otro.","og_url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/","og_site_name":"Por una nube sostenible","article_published_time":"2018-02-26T08:36:14+00:00","og_image":[{"width":750,"height":400,"url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg","type":"image\/jpeg"}],"author":"Robert Bermejo","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Robert Bermejo","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/"},"author":{"name":"Robert Bermejo","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#\/schema\/person\/68bf0b11185930e37ca20de48f3a1d5d"},"headline":"Moviendo ficheros de un blob a otro a la velocidad de la luz","datePublished":"2018-02-26T08:36:14+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/"},"wordCount":610,"commentCount":2,"image":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg","articleSection":["Azure"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/","name":"Moviendo ficheros de un blob a otro a la velocidad de la luz | ENCAMINA","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#primaryimage"},"image":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg","datePublished":"2018-02-26T08:36:14+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#\/schema\/person\/68bf0b11185930e37ca20de48f3a1d5d"},"description":"Robert Bermejo explica c\u00f3mo mover todos los ficheros de un Blob Storage a otro.","breadcrumb":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#primaryimage","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg","contentUrl":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2018\/02\/Moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz.jpg","width":750,"height":400,"caption":"Moviendo ficheros de un blob a otro a la velocidad de la luz"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/moviendo-ficheros-de-un-blob-a-otro-a-la-velocidad-de-la-luz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/"},{"@type":"ListItem","position":2,"name":"Moviendo ficheros de un blob a otro a la velocidad de la luz"}]},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#website","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/","name":"Por una nube sostenible","description":"C\u00f3mo no romper los l\u00edmites, c\u00f3mo crear una buena arquitectura y c\u00f3mo hacer un buen mantenimiento","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#\/schema\/person\/68bf0b11185930e37ca20de48f3a1d5d","name":"Robert Bermejo","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6587b3750153107e8e92596e59922b84c148736260183254a520475005b24a1?s=96&d=mm&r=g","caption":"Robert Bermejo"},"description":"Robert Bermejo lleva m\u00e1s de 10 a\u00f1os en el mundo Microsoft, principalmente en entornos web y desde hace 4 a\u00f1os en Azure, siendo MVP en esta categor\u00eda. Organizador de la comunidad de Azure en Barcelona (@CAT_zure) donde mensualmente organiza meetups sobre esta tem\u00e1tica, tambi\u00e9n escribe en la revista CompartiMOSS as\u00ed como se le puede ver en los diversos eventos nacionales hablando sobre Azure. Actualmente es Team Leader en ENCAMINA y se puede decir que vive en la nube ;)","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/author\/rbermejo\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/posts\/1648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/users\/180"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/comments?post=1648"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/posts\/1648\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/media\/1687"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/media?parent=1648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/categories?post=1648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/tags?post=1648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}