{"id":10,"date":"2015-08-27T22:46:24","date_gmt":"2015-08-27T22:46:24","guid":{"rendered":"http:\/\/www.morsello.com\/?p=10"},"modified":"2016-04-04T22:46:21","modified_gmt":"2016-04-04T22:46:21","slug":"what-i-wish-id-known-about-amazons-aws-s3","status":"publish","type":"post","link":"https:\/\/www.morsello.com\/index.php\/2015\/08\/27\/what-i-wish-id-known-about-amazons-aws-s3\/","title":{"rendered":"What I Wish I&#8217;d Known About Amazon&#8217;s AWS S3"},"content":{"rendered":"<p>While S3 standards for <em>Simple<\/em> Storage Service, there are a number of configuration options for rights management that are somewhat complex, and not presented in the same way through the console as are available through either the API or the AWS console.\u00a0 Had I known these things earlier, I would have been saved time.<\/p>\n<p>1.\u00a0 An Amazon Retail Account is Linked to an AWS Account<\/p>\n<p>2. The set of rights shown on the console does NOT align with the rights through the API.<\/p>\n<p>As shown, the available rights for the Grantee are only:<\/p>\n<p>list<\/p>\n<p>Upload\/Delete<\/p>\n<p>View<\/p>\n<p>Edit Permissions<\/p>\n<p>This is a dramatic oversimplification of the control available through bucket policies and the API.\u00a0 For example, upload and delete rights are separate privileges, allowing you to create an account which can provide new files to S3 in a bucket, but doesn&#8217;t the right to delete anything, even files uploaded through that account.<\/p>\n<p>3.\u00a0 The <em>rename<\/em> function requires <em>delete <\/em>privileges<\/p>\n<p>I can&#8217;t find this documented, but renaming any resource, including a folder, requires that delete privileges be granted.\u00a0 That&#8217;s an unfortunate limitation, since it might be useful to do<em>anything but<\/em> remove data.\u00a0 Still, better to plan ahead, knowing you can&#8217;t rename.<\/p>\n<p>4.\u00a0 Renaming a file through the console without permissions fails silently<\/p>\n<p>This seems like a bug, but <em>rename<\/em> simply doesn&#8217;t succeed.\u00a0 Your only indication of failure is that the file is not updated to the new name in your browser.<\/p>\n<p>5. S3 Doesn&#8217;t Support Directories, But&#8230;<\/p>\n<p>Creating a &#8220;directory&#8221; doesn&#8217;t behavior as it does on an operating system, but neither is it merely a simulation.\u00a0 You can create a &#8220;directory&#8221; that&#8217;s empty and <em>something<\/em> is there on the system.\u00a0 But you can also change your mind about what character separates virtual path elements.<a href=\"http:\/\/www.morsello.com\/wp-content\/uploads\/2015\/08\/BucketProperties_PermissionsPolicy_0.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-13\" src=\"http:\/\/www.morsello.com\/wp-content\/uploads\/2015\/08\/BucketProperties_PermissionsPolicy_0-300x130.png\" alt=\"BucketProperties_PermissionsPolicy_0\" width=\"300\" height=\"130\" srcset=\"https:\/\/www.morsello.com\/wp-content\/uploads\/2015\/08\/BucketProperties_PermissionsPolicy_0-300x130.png 300w, https:\/\/www.morsello.com\/wp-content\/uploads\/2015\/08\/BucketProperties_PermissionsPolicy_0.png 450w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>While S3 standards for Simple Storage Service, there are a number of configuration options for rights management that are somewhat complex, and not presented in the same way through the console as are available through either the API or the AWS console.\u00a0 Had I known these things earlier, I would have been saved time. 1.\u00a0&hellip;<\/p>\n<p><a class=\"more-link\" href=\"https:\/\/www.morsello.com\/index.php\/2015\/08\/27\/what-i-wish-id-known-about-amazons-aws-s3\/\" title=\"Continue reading &lsquo;What I Wish I&#8217;d Known About Amazon&#8217;s AWS S3&rsquo;\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/posts\/10"}],"collection":[{"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":4,"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":154,"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/posts\/10\/revisions\/154"}],"wp:attachment":[{"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.morsello.com\/index.php\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}