{"id":3709,"date":"2017-06-20T05:33:32","date_gmt":"2017-06-20T12:33:32","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3709"},"modified":"2025-06-13T20:40:54","modified_gmt":"2025-06-14T03:40:54","slug":"build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/","title":{"rendered":"Crear una aplicaci\u00f3n de galer\u00eda de fotos con etiquetado autom\u00e1tico mediante AWS Rekognition y Couchbase - Parte 3"},"content":{"rendered":"<p><em><a href=\"https:\/\/www.linkedin.com\/in\/ratnopam-chakrabarti\" target=\"_blank\" rel=\"noopener noreferrer\">Ratnopam Chakrabarti<\/a>\u00a0es un desarrollador de software que trabaja actualmente para Ericsson Inc. Lleva bastante tiempo centrado en IoT, tecnolog\u00edas m\u00e1quina a m\u00e1quina, coches conectados y dominios de ciudades inteligentes. Le encanta aprender nuevas tecnolog\u00edas y ponerlas en pr\u00e1ctica. Cuando no est\u00e1 trabajando, le gusta pasar tiempo con su hijo de 3 a\u00f1os.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2542\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/ratnopamchakrabarti2.jpeg\" alt=\"Ratnopam Chakrabarti\" width=\"150\" height=\"200\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/ratnopamchakrabarti2.jpeg 150w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/ratnopamchakrabarti2-15x20.jpeg 15w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/p>\n<h3>Impresionante AWS (Amazon Web Services)<\/h3>\n<p>En <a href=\"https:\/\/www.couchbase.com\/blog\/es\/build-photogallery-app-aws-rekognition-couchbase\/\">Parte 1<\/a> y <a href=\"https:\/\/www.couchbase.com\/blog\/es\/build-photogallery-app-aws-rekognition-and-couchbase-part2\/\">Parte 2<\/a> de la serie, habl\u00e9 sobre todo de Couchbase. En esta parte, voy a centrarme en AWS y, m\u00e1s concretamente, en la API AWS Reckognition.<\/p>\n<h3>Crear un Bucket S3<\/h3>\n<p>Como requisito previo para ejecutar la aplicaci\u00f3n photogallery, debe crear un bucket s3 utilizando su cuenta de Amazon Web Services. Puede utilizar la funci\u00f3n <u><a href=\"https:\/\/github.com\/ratchakr\/ImageTagger\/blob\/staging\/CloudFormation_s3_bucket.json\" target=\"_blank\" rel=\"noopener noreferrer\">plantilla cloudformation<\/a><\/u>\u00a0He mencionado en la Parte 1 de la serie para crearlo autom\u00e1ticamente; de lo contrario, siempre se puede crear manualmente utilizando la consola de AWS.<\/p>\n<h3>Pol\u00edtica de cubos<\/h3>\n<p>Tanto Couchbase como S3 utilizan el concepto de \"bucket\" para almacenar datos. Voy a tratar de mencionar el contexto adecuado al referirme al t\u00e9rmino \"bucket\" - en cuanto a si se trata de un bucket Couchbase o un bucket S3. Intenta no confundirte entre los dos, aunque el objetivo subyacente de un \"bucket\" es almacenar datos tanto en Couchbase como en S3.<\/p>\n<p>En este caso, me refiero a un cubo S3.<\/p>\n<p>Para permitir a los usuarios almacenar im\u00e1genes en un bucket s3, necesitamos crear una pol\u00edtica de bucket. Por defecto, el acceso a un bucket s3 es privado. Para anular la pol\u00edtica predeterminada, creamos la siguiente pol\u00edtica que permite a todos los usuarios almacenar objetos en s3 y recuperar objetos de s3.<\/p>\n<pre class=\"lang:default decode:true\">{\r\n\r\n\u00a0 \u00a0 \"Version\": \"2012-10-17\",\r\n\r\n\u00a0 \u00a0 \"Id\": \"Policy1493677249191\",\r\n\r\n\u00a0 \u00a0 \"Statement\": [\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 {\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"Sid\": \"Stmt1493677246291\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"Effect\": \"Allow\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"Principal\": \"*\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"Action\": \"s3:GetObject\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"Resource\": \"arn:aws:s3:::la-image-tagger-chakrar27\/*\"\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 }\r\n\r\n\u00a0 \u00a0 ]\r\n\r\n}<\/pre>\n<p>En mi caso, el nombre del cubo creado es <em>la-image-tagger-chakrar27.<\/em><\/p>\n<h3>An\u00e1lisis de im\u00e1genes mediante re-cognici\u00f3n<\/h3>\n<p>A finales de 2016, AWS lanz\u00f3 Rekognition, un servicio de procesamiento de im\u00e1genes que puede analizar una imagen e inferir informaci\u00f3n \u00fatil sobre ella. Para obtener un estudio detallado, consulte la documentaci\u00f3n de AWS Rekognition. <u><a href=\"https:\/\/aws.amazon.com\/rekognition\/?sc_channel=PS&amp;sc_campaign=acquisition_US_group_3&amp;sc_publisher=google&amp;sc_medium=rekognition_b_group_3&amp;sc_content=aws_recognition_software_exact&amp;sc_detail=aws%20rekognition&amp;sc_category=rekognition&amp;sc_segment=194345255026&amp;sc_matchtype=e&amp;sc_country=us&amp;s_kwcid=AL!4422!3!194345255026!e!!g!!aws%20rekognition&amp;ef_id=WR0nXwAAAGocXyYY:20170519042001:s\" target=\"_blank\" rel=\"noopener noreferrer\">aqu\u00ed<\/a><\/u>.<\/p>\n<p>En el contexto de la aplicaci\u00f3n de fotogaler\u00eda, utilic\u00e9 la funci\u00f3n <em>detectarEtiquetas() <\/em>API que ofrece AWS Rekognition. Devuelve un par clave-valor de etiquetas con puntuaciones de confianza. El siguiente fragmento de c\u00f3digo hace el truco:<\/p>\n<pre class=\"lang:default decode:true\">(function(filename, res) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var rekognition = new aws.Rekognition();\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var params = {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Image: {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0S3Object: {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Bucket: S3_BUCKET,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Name: filename\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MaxLabels: 5,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MinConfidence: 50\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0};\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0rekognition.detectLabels(params, function(err, data) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (err) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(\"Error in REKO\" + err);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0else {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ successful response\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data = JSON.stringify(data);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n<\/pre>\n<p>El c\u00f3digo anterior llama a AWS Rekognition's <em>detectarEtiquetas<\/em>\u00a0y devuelve un conjunto de etiquetas basadas en el an\u00e1lisis de la imagen. En este caso, he limitado el n\u00famero m\u00e1ximo de etiquetas a 5 y el porcentaje m\u00ednimo de confianza al 50 por ciento.<\/p>\n<p>Una vez que se devuelven las etiquetas, se analizan mediante JSON y se introducen en <em>etiquetas <\/em>array. Una vez hecho esto, el <em>guardar() <\/em>para almacenar el documento en el bucket de Couchbase.<\/p>\n<p>Rekognition ofrece algunas API interesantes como <em>detectarCaras()<\/em>\u00a0y <em>compararCaras()<\/em>\u00a0que abren todo un nuevo espectro de casos de uso; sin embargo, por ahora me he ce\u00f1ido al simple <em>detectarEtiquetas()<\/em>\u00a0API para empezar.<\/p>\n<h3>Ejecutar la aplicaci\u00f3n<\/h3>\n<p>Para ejecutar la aplicaci\u00f3n node photogallery, necesita tener a mano la clave de acceso S3 y las claves secretas. Puede utilizar el m\u00f3dulo \"dotenv\" de node para almacenarlas en un archivo llamado .env en su c\u00f3digo fuente. Si hace esto <strong>debe a\u00f1adir el archivo .env a .gitignore<\/strong><strong>:<\/strong><\/p>\n<pre class=\"lang:default decode:true\">node_modules\/\r\n\r\n*.env<\/pre>\n<p>No querr\u00e1s exponer las claves de acceso de AWS al mundo a menos que est\u00e9s de un humor extremadamente filantr\u00f3pico. Yo, sin embargo, prefiero pasar estos valores como una variable de entorno. He aqu\u00ed c\u00f3mo ejecutar la aplicaci\u00f3n node utilizando variables de entorno:<\/p>\n<pre class=\"lang:default decode:true\">env AWS_ACCESS_KEY=&lt;Your Access Key&gt; AWS_SECRET_KEY=&lt;Your Secret key&gt; S3_BUCKET=&lt;S3-bucket-name&gt; HOST=https:\/\/localhost:3000 COUCHBASE_HOST=127.0.0.1:8091 COUCHBASE_BUCKET=photogallery \u00a0node upload.js<\/pre>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/community\/community-writers-program\/\"><em>Este post forma parte del Programa de Escritura de la Comunidad Couchbase<\/em><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Ratnopam Chakrabarti\u00a0is a software developer currently working for Ericsson Inc. He has been focused on IoT, machine-to-machine technologies, connected cars, and smart city domains for quite a while. He loves learning new technologies and putting them to work. When he\u2019s [&hellip;]<\/p>","protected":false},"author":53,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1810,1816],"tags":[10124],"ppma_author":[9026],"class_list":["post-3709","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-mobile","category-couchbase-server","tag-amazon-web-services-aws"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Build a photogallery app with auto tagging \u2013 Part 3<\/title>\n<meta name=\"description\" content=\"Part 1 and Part 2 is mostly about Couchbase. This part focuses on building a photogallery app with auto tagging using AWS Rekognition and Couchbase.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build a photogallery app with auto tagging using AWS Rekognition and Couchbase \u2013 Part 3\" \/>\n<meta property=\"og:description\" content=\"Part 1 and Part 2 is mostly about Couchbase. This part focuses on building a photogallery app with auto tagging using AWS Rekognition and Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-20T12:33:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:40:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/ratnopamchakrabarti2.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/\"},\"author\":{\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220\"},\"headline\":\"Build a photogallery app with auto tagging using AWS Rekognition and Couchbase \u2013 Part 3\",\"datePublished\":\"2017-06-20T12:33:32+00:00\",\"dateModified\":\"2025-06-14T03:40:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/\"},\"wordCount\":570,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Amazon Web Services (AWS)\"],\"articleSection\":[\"Couchbase Mobile\",\"Couchbase Server\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/\",\"name\":\"Build a photogallery app with auto tagging \u2013 Part 3\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-06-20T12:33:32+00:00\",\"dateModified\":\"2025-06-14T03:40:54+00:00\",\"description\":\"Part 1 and Part 2 is mostly about Couchbase. This part focuses on building a photogallery app with auto tagging using AWS Rekognition and Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build a photogallery app with auto tagging using AWS Rekognition and Couchbase \u2013 Part 3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220\",\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"caption\":\"Laura Czajkowski, Developer Community Manager, Couchbase\"},\"description\":\"Laura Czajkowski is the Snr. Developer Community Manager at Couchbase overseeing the community. She\u2019s responsible for our monthly developer newsletter.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/laura-czajkowski\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Build a photogallery app with auto tagging \u2013 Part 3","description":"Las partes 1 y 2 tratan principalmente sobre Couchbase. Esta parte se centra en la creaci\u00f3n de una aplicaci\u00f3n de galer\u00eda de fotos con etiquetado autom\u00e1tico utilizando AWS Rekognition y Couchbase.","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:\/\/www.couchbase.com\/blog\/es\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/","og_locale":"es_MX","og_type":"article","og_title":"Build a photogallery app with auto tagging using AWS Rekognition and Couchbase \u2013 Part 3","og_description":"Part 1 and Part 2 is mostly about Couchbase. This part focuses on building a photogallery app with auto tagging using AWS Rekognition and Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-06-20T12:33:32+00:00","article_modified_time":"2025-06-14T03:40:54+00:00","og_image":[{"width":150,"height":200,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/ratnopamchakrabarti2.jpeg","type":"image\/jpeg"}],"author":"Laura Czajkowski, Developer Community Manager, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Laura Czajkowski, Developer Community Manager, Couchbase","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/"},"author":{"name":"Laura Czajkowski, Developer Community Manager, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220"},"headline":"Build a photogallery app with auto tagging using AWS Rekognition and Couchbase \u2013 Part 3","datePublished":"2017-06-20T12:33:32+00:00","dateModified":"2025-06-14T03:40:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/"},"wordCount":570,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Amazon Web Services (AWS)"],"articleSection":["Couchbase Mobile","Couchbase Server"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/","url":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/","name":"Build a photogallery app with auto tagging \u2013 Part 3","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-06-20T12:33:32+00:00","dateModified":"2025-06-14T03:40:54+00:00","description":"Las partes 1 y 2 tratan principalmente sobre Couchbase. Esta parte se centra en la creaci\u00f3n de una aplicaci\u00f3n de galer\u00eda de fotos con etiquetado autom\u00e1tico utilizando AWS Rekognition y Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/build-photogallery-app-auto-tagging-using-aws-rekognition-couchbase-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Build a photogallery app with auto tagging using AWS Rekognition and Couchbase \u2013 Part 3"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220","name":"Laura Czajkowski, Directora de la Comunidad de Desarrolladores, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409","url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","caption":"Laura Czajkowski, Developer Community Manager, Couchbase"},"description":"Laura Czajkowski es la Snr. Developer Community Manager en Couchbase supervisando la comunidad. Es responsable de nuestro bolet\u00edn mensual para desarrolladores.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/laura-czajkowski\/"}]}},"authors":[{"term_id":9026,"user_id":53,"is_guest":0,"slug":"laura-czajkowski","display_name":"Laura Czajkowski, Developer Community Manager, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","author_category":"","last_name":"Czajkowski","first_name":"Laura","job_title":"","user_url":"","description":"Laura Czajkowski es la Snr. Developer Community Manager en Couchbase supervisando la comunidad. Es responsable de nuestro bolet\u00edn mensual para desarrolladores."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/3709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=3709"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/3709\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=3709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=3709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=3709"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=3709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}