docs: def s3_upload(acl, bucket, conn, content, content_type, path):
      """ Store an object in our an S3 bucket.
  
      :param acl:
          S3 ACL for the object
      :param bucket:
          S3 bucket to upload to
      :param content:
          a string representation of the object to upload
      :param content_type:
          a string MIMETYPE of the object that S3 should
          be informed of
      :param path:
          an object specific portion of the S3 key name
          to be passed to gen_url to generate the the location
          in S3 of the new object
  
      :raise:
          IOError on any failure
      :return:
          S3 generated URL of the uploaded object
      """
  
      # obj is the object that will be uploaded
      obj = Key(conn.get_bucket(bucket))
      obj.content_type = content_type
      obj.key = path
  
      obj.set_contents_from_string(content)
      obj.set_acl(acl)
  
      return gen_url(bucket, path)