title: When using Public-Accessible S3 buckets, how are there not collisions with other Public-Accessible S3 bucket and object names?
body: <p>I have an S3 bucket <code>my-bucket</code> and an object in that bucket <code>my-image.jpg</code></p>
  
  <p>In order to display these images in a website, directly out of S3, I've put this  bucket policy on <code>my-bucket</code>:</p>
  
  <pre><code>{
      "Version": "2008-10-17",
      "Statement": [
          {
              "Sid": "AllowPublicRead",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "*"
              },
              "Action": "s3:GetObject",
              "Resource": "arn:aws:s3:::my-bucket/*"
          }
      ]
  }
  </code></pre>
  
  <p>Now, in my website, I can conveniently just do this in my HTML:</p>
  
  <pre><code>&lt;img width="400" height="400" 
              src="https://s3.amazonaws.com/my-bucket/my-image.jpg"&gt;
  </code></pre>
  
  <p><strong>But what is stopping someone, somewhere, from making their own public <code>my-bucket</code>, and adding a <code>my-image.jpg</code>?</strong> How will it load the proper image? Does S3 handle this in some way?</p>
  
  <p><strong>note</strong> No, these are not the actual bucket names + image names. They are examples.</p>