{"id":4569,"date":"2018-06-07T11:50:39","date_gmt":"2018-06-07T06:20:39","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=4569"},"modified":"2018-06-07T11:50:39","modified_gmt":"2018-06-07T06:20:39","slug":"content-management-in-amazon-s3-using-java","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/","title":{"rendered":"Content Management in Amazon S3 using JAVA"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p><strong>Amazon S3<\/strong>\u00a0(Simple Storage Service) is a storage service provided by AWS (Amazon Web Services). We can use S3 to store and retrieve any amount of data on the web world-wide. To know more about this service, you can refer to the official documentation of AWS S3 from <a href=\"https:\/\/aws.amazon.com\/documentation\/s3\/\">here<\/a>. This tutorial will show you, how to manage your content in S3 using <strong>JAVA<\/strong>.\u00a0The below java program demonstrates how to make basic requests to Amazon S3 using the AWS SDK for Java.<\/p>\n<p>To continue with this tutorial, you must have <em>A<\/em>WS<em> secret access key<\/em> and <em>access key id<\/em>. These keys will be used to make a connection with AWS in your code. Keys can be generated for AWS users.<\/p>\n<p>Before moving further to this tutorial, we need to download <em>AWS Java SDK<\/em>. You can download it from <a href=\"https:\/\/aws.amazon.com\/sdk-for-java\/\">here<\/a>. This zip file itself included all the required JARs.<\/p>\n<p>Firstly create a <strong>S3Tutorial<\/strong> <em>class<\/em> with a <em>main<\/em> method.<\/p>\n<pre class=\"lang:java decode:true\">\/\/'import' statements will be placed here.\r\n\r\npublic class S3Tutorial\r\n{\r\n       public static void main(String[] args)\r\n       {\r\n              \/\/the blocks of code given below, will be placed here.\r\n       }\r\n}<\/pre>\n<p><span style=\"text-decoration: underline;\">Amazon S3 client<\/span> &gt;&gt; Make an Amazon S3 client with your\u00a0<em>A<\/em>WS<em> secret access key<\/em>,\u00a0<em>access key id<\/em> and your S3 bucket&#8217;s\u00a0<em>region<\/em>.<\/p>\n<pre class=\"lang:java decode:true \">AWSCredentials awsCredentials = null;\r\ntry\r\n{\r\n\tawsCredentials = new AWSCredentials()\r\n\t{\r\n\t\t@Override\r\n\t\tpublic String getAWSSecretKey()\r\n\t\t{\r\n\t\t\treturn \"paste_your_aws_secret_access_key_here\";\r\n\t\t}\r\n\t\t@Override\r\n\t\tpublic String getAWSAccessKeyId()\r\n\t\t{\r\n\t\t\treturn \"paste_your_aws_access_key_id_here\";\r\n\t\t}\r\n\t};\r\n}\r\ncatch (Exception e)\r\n{\r\n\tthrow new AmazonClientException(\"can not load your aws credentials, please check your credentials !!\", e);\r\n}\r\nAmazonS3 s3Client = AmazonS3ClientBuilder.standard()\r\n\t\t\t          .withCredentials(new AWSStaticCredentialsProvider(awsCredentials))\r\n\t\t\t          .withRegion(\"paste_your_aws_s3_region_here\")\r\n\t\t\t          .build();\r\n\/\/my S3 region is EU (London), so i am using 'eu-west-2'.<\/pre>\n<p><span style=\"text-decoration: underline;\">Bucket name<\/span> &gt;&gt; Choose a <em>bucket<\/em> name which must be unique globally on S3.\u00a0A bucket is simply a container to which you are going to interact with.You can optionally specify a location (<em>region<\/em>) for your bucket if you want to keep your data closer to your applications or users.<\/p>\n<pre class=\"lang:java decode:true \">System.out.println(\"welcome to Amazon S3 !!\");\r\n\r\nString bucketName = \"s3-tutorial-bucket\";<\/pre>\n<p><span style=\"text-decoration: underline;\">Creating bucket<\/span> &gt;&gt; Now create a <em>bucket<\/em> in your Amazon S3 storage.<\/p>\n<pre class=\"lang:java decode:true\">System.out.println(\"creating bucket : \" + bucketName + \"\\n\");\r\ns3Client.createBucket(bucketName);\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\">Listing buckets<\/span> &gt;&gt; List all the <em>buckets<\/em>\u00a0available in your S3 account.<\/p>\n<pre class=\"lang:java decode:true \">System.out.println(\"listing buckets...\");\r\nint buckIndex = 1;\r\nfor (Bucket bucket : s3Client.listBuckets())\r\n{\r\n    System.out.println(buckIndex + \". \" + bucket.getName());\r\n}\r\nSystem.out.println();<\/pre>\n<p><span style=\"text-decoration: underline;\">Key<\/span> &gt;&gt; Choose a key for the object which you are uploading. Your file will be saved on S3 with this name.<\/p>\n<pre class=\"lang:java decode:true\">String key = \"S3TutorialKey\";<\/pre>\n<p><span style=\"text-decoration: underline;\">Uploading object<\/span> &gt;&gt; Upload an object (in this tutorial, it&#8217;s an image) to your bucket. You can easily upload a file to S3.\u00a0You can also specify your own metadata when uploading to S3, which allows you to set a variety of options like content-type and content-encoding, plus additional metadata specific to your applications.<\/p>\n<pre class=\"lang:java decode:true\">System.out.println(\"uploading a new object to S3 bucket from a file...\\n\");\r\ns3Client.putObject(new PutObjectRequest(bucketName, key, new File(\"D:\\\\image.jpg\")));<\/pre>\n<p><span style=\"text-decoration: underline;\">Get your uploaded <em>object<\/em><\/span>\u00a0&gt;&gt; When you download an object, you get all of the object&#8217;s metadata and a stream from which to read the contents. It&#8217;s important to read the contents of the stream as quickly as possibly since the data is streamed directly from Amazon S3 and your network connection will remain open until you read all the data or close the input stream.<\/p>\n<p>&#8216;GetObjectRequest&#8217; also supports several other options, including conditional downloading of objects based on modification times, ETags and selectively downloading a range of an object.<\/p>\n<pre class=\"lang:java decode:true\">System.out.println(\"downloading an object...\");\r\nS3Object s3Object = s3Client.getObject(new GetObjectRequest(bucketName, key));\r\nSystem.out.println(\"content-type of your downloaded object : \" + object.getObjectMetadata().getContentType());\r\ntry (InputStream inputStream = s3Object.getObjectContent();)\r\n{\r\n\tImage image = ImageIO.read(inputStream);\r\n\t\/\/use a label to display the image.\r\n\tJFrame frame = new JFrame();\r\n\tJLabel label = new JLabel(new ImageIcon(image));\r\n\tframe.getContentPane().add(label, BorderLayout.CENTER);\r\n\tframe.pack();\r\n\tframe.setVisible(true);\r\n}\r\ncatch (Exception ex)\r\n{\r\n\tSystem.out.println(\"some exception occured !\");\r\n}<\/pre>\n<p><span style=\"text-decoration: underline;\">List all the <em>objects<\/em> in your <em>bucket<\/em> by prefix<\/span>\u00a0&gt;&gt; There are many options for listing the objects in your bucket. Keep in mind that buckets with many objects might truncate their results when listing their objects, so be sure to check if the returned object listing is truncated, and use the &#8216;AmazonS3.listNextBatchOfObjects(&#8230;)&#8217; operation to retrieve additional results.<\/p>\n<pre class=\"lang:java decode:true\">System.out.println(\"listing objects...\");\r\nint objIndex = 1;\r\nObjectListing objectListing = s3Client.listObjects(new ListObjectsRequest()\r\n\t\t\t\t                  .withBucketName(bucketName)\r\n\t\t\t\t                  .withPrefix(\"S3\"));\r\nfor (S3ObjectSummary objectSummary : objectListing.getObjectSummaries())\r\n{\r\n    System.out.println(objIndex + \". \" + objectSummary.getKey() + \"\\t(size = \" + objectSummary.getSize() + \")\");\r\n}<\/pre>\n<p><span style=\"text-decoration: underline;\">Delete an <em>object<\/em><\/span>\u00a0&gt;&gt; Unless versioning has been turned on for your bucket, there is no way to undelete an object, so use caution when deleting objects.<\/p>\n<pre class=\"lang:java decode:true\">System.out.println(\"deleting an object...\\n\");\r\ns3Client.deleteObject(bucketName, key);<\/pre>\n<p><span style=\"text-decoration: underline;\">Delete a <em>bucket<\/em><\/span>\u00a0&gt;&gt; A bucket must be completely empty before it can be deleted, so remember to delete all the objects from your buckets before you try to delete them.<\/p>\n<pre class=\"lang:java decode:true\">System.out.println(\"deleting bucket : \" + bucketName + \"\\n\");\r\ns3Client.deleteBucket(bucketName);<\/pre>\n<p>So, these were the basic operations of Amazon S3 using AWS Java SDK. Enjoy reading !! \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Amazon S3\u00a0(Simple Storage Service) is a storage service provided by AWS (Amazon Web Services). We can use S3 to store and retrieve any amount of data on the web world-wide. To know more about this service, you can refer to the official documentation of AWS S3 from here. This tutorial will show you, how [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4627,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[256,102],"tags":[273,272,224],"class_list":["post-4569","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java-application","category-web-service","tag-amazon-s3","tag-aws","tag-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Content Management in Amazon S3 using JAVA - InnovationM - Blog<\/title>\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.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Content Management in Amazon S3 using JAVA - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"&nbsp; Amazon S3\u00a0(Simple Storage Service) is a storage service provided by AWS (Amazon Web Services). We can use S3 to store and retrieve any amount of data on the web world-wide. To know more about this service, you can refer to the official documentation of AWS S3 from here. This tutorial will show you, how [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-07T06:20:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/06\/AWS_S3_With_Java_Blog_Banner_Image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1415\" \/>\n\t<meta property=\"og:image:height\" content=\"962\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Content Management in Amazon S3 using JAVA\",\"datePublished\":\"2018-06-07T06:20:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/\"},\"wordCount\":575,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/06\\\/AWS_S3_With_Java_Blog_Banner_Image.png\",\"keywords\":[\"Amazon S3\",\"AWS\",\"java\"],\"articleSection\":[\"Java Application\",\"Web service\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/\",\"name\":\"Content Management in Amazon S3 using JAVA - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/06\\\/AWS_S3_With_Java_Blog_Banner_Image.png\",\"datePublished\":\"2018-06-07T06:20:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/06\\\/AWS_S3_With_Java_Blog_Banner_Image.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/06\\\/AWS_S3_With_Java_Blog_Banner_Image.png\",\"width\":1415,\"height\":962},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/content-management-in-amazon-s3-using-java\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Content Management in Amazon S3 using JAVA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Content Management in Amazon S3 using JAVA - InnovationM - Blog","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.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/","og_locale":"en_US","og_type":"article","og_title":"Content Management in Amazon S3 using JAVA - InnovationM - Blog","og_description":"&nbsp; Amazon S3\u00a0(Simple Storage Service) is a storage service provided by AWS (Amazon Web Services). We can use S3 to store and retrieve any amount of data on the web world-wide. To know more about this service, you can refer to the official documentation of AWS S3 from here. This tutorial will show you, how [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/","og_site_name":"InnovationM - Blog","article_published_time":"2018-06-07T06:20:39+00:00","og_image":[{"width":1415,"height":962,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/06\/AWS_S3_With_Java_Blog_Banner_Image.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Content Management in Amazon S3 using JAVA","datePublished":"2018-06-07T06:20:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/"},"wordCount":575,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/06\/AWS_S3_With_Java_Blog_Banner_Image.png","keywords":["Amazon S3","AWS","java"],"articleSection":["Java Application","Web service"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/","url":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/","name":"Content Management in Amazon S3 using JAVA - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/06\/AWS_S3_With_Java_Blog_Banner_Image.png","datePublished":"2018-06-07T06:20:39+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/06\/AWS_S3_With_Java_Blog_Banner_Image.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/06\/AWS_S3_With_Java_Blog_Banner_Image.png","width":1415,"height":962},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/content-management-in-amazon-s3-using-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Content Management in Amazon S3 using JAVA"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/4569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=4569"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/4569\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/4627"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=4569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=4569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=4569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}