code: def create_bucket(self, bucket_name, headers=None,
                        location=Location.DEFAULT, policy=None):
          
          check_lowercase_bucketname(bucket_name)
  
          if policy:
              if headers:
                  headers[self.provider.acl_header] = policy
              else:
                  headers = {self.provider.acl_header : policy}
          if location == Location.DEFAULT:
              data = ''
          else:
              data = '<CreateBucketConstraint><LocationConstraint>' + \
                      location + '</LocationConstraint></CreateBucketConstraint>'
          response = self.make_request('PUT', bucket_name, headers=headers,
                  data=data)
          body = response.read()
          if response.status == 409:
              raise self.provider.storage_create_error(
                  response.status, response.reason, body)
          if response.status == 200:
              return self.bucket_class(self, bucket_name)
          else:
              raise self.provider.storage_response_error(
                  response.status, response.reason, body)
docs: Creates a new located bucket. By default it's in the USA. You can pass
          Location.EU to create an European bucket.
  
          :type bucket_name: string
          :param bucket_name: The name of the new bucket
          
          :type headers: dict
          :param headers: Additional headers to pass along with the request to AWS.
  
          :type location: :class:`boto.s3.connection.Location`
          :param location: The location of the new bucket
          
          :type policy: :class:`boto.s3.acl.CannedACLStrings`
          :param policy: A canned ACL policy that will be applied to the
              new key in S3.