code: def copy_object(self, container, obj, new_container, new_obj_name=None,
              content_type=None):
          
          nm = new_obj_name or utils.get_name(obj)
          uri = "/%s/%s" % (utils.get_name(new_container), nm)
          copy_from = "/%s/%s" % (utils.get_name(container), utils.get_name(obj))
          headers = {"X-Copy-From": copy_from,
                  "Content-Length": "0"}
          if content_type:
              headers["Content-Type"] = content_type
          resp, resp_body = self.api.method_put(uri, headers=headers)
          return resp.headers.get("etag")
docs: Copies the object to the new container, optionally giving it a new name.
          If you copy to the same container, you must supply a different name.
  
          Returns the etag of the newly-copied object.
  
          You can optionally change the content_type of the object by supplying
          that in the 'content_type' parameter.