예제 #1
0
 def enableLogging(self, target_prefix_uri):
     el = self.tree.find(".//LoggingEnabled")
     if not el:
         el = getTreeFromXml(self.LOG_TEMPLATE)
         self.tree.append(el)
     el.find(".//TargetBucket").text = target_prefix_uri.bucket()
     el.find(".//TargetPrefix").text = target_prefix_uri.object()
예제 #2
0
파일: Exceptions.py 프로젝트: benizi/s3cmd
    def __init__(self, response):
        self.status = response["status"]
        self.reason = response["reason"]
        self.info = {
            "Code" : "",
            "Message" : "",
            "Resource" : ""
        }
        debug("S3Error: %s (%s)" % (self.status, self.reason))
        if "headers" in response:
            for header in response["headers"]:
                debug("HttpHeader: %s: %s" % (header, response["headers"][header]))
        if "data" in response and response["data"]:
            try:
                tree = getTreeFromXml(response["data"])
            except XmlParseError:
                debug("Not an XML response")
            else:
                try:
                    self.info.update(self.parse_error_xml(tree))
                except Exception as e:
                    error("Error parsing xml: %s.  ErrorXML: %s" % (e, response["data"]))

        self.code = self.info["Code"]
        self.message = self.info["Message"]
        self.resource = self.info["Resource"]
예제 #3
0
    def __init__(self, response):
        self.status = response["status"]
        self.reason = response["reason"]
        self.info = {
            "Code" : "",
            "Message" : "",
            "Resource" : ""
        }
        debug("S3Error: %s (%s)" % (self.status, self.reason))
        if "headers" in response:
            for header in response["headers"]:
                debug("HttpHeader: %s: %s" % (header, response["headers"][header]))
        if "data" in response and response["data"]:
            try:
                tree = getTreeFromXml(response["data"])
            except XmlParseError:
                debug("Not an XML response")
            else:
                try:
                    self.info.update(self.parse_error_xml(tree))
                except Exception as e:
                    error("Error parsing xml: %s.  ErrorXML: %s" % (e, response["data"]))

        self.code = self.info["Code"]
        self.message = self.info["Message"]
        self.resource = self.info["Resource"]
예제 #4
0
	def __init__(self, response):
		self.status = response["status"]
		self.reason = response["reason"]
		self.info = {
			"Code" : "",
			"Message" : "",
			"Resource" : ""
		}
		debug("S3Error: %s (%s)" % (self.status, self.reason))
		if response.has_key("headers"):
			for header in response["headers"]:
				debug("HttpHeader: %s: %s" % (header, response["headers"][header]))
		if response.has_key("data"):
			tree = getTreeFromXml(response["data"])
			error_node = tree
			if not error_node.tag == "Error":
				error_node = tree.find(".//Error")
                        if error_node:
                                for child in error_node.getchildren():
                                        if child.text != "":
                                                debug("ErrorXML: " + child.tag + ": " + repr(child.text))
                                                self.info[child.tag] = child.text
                        else:
                                debug("S3Error response empty: %s (%s)" % (self.status, self.reason))
                                
		self.code = self.info["Code"]
		self.message = self.info["Message"]
		self.resource = self.info["Resource"]
예제 #5
0
 def enableLogging(self, target_prefix_uri):
     el = self.tree.find(".//LoggingEnabled")
     if not el:
         el = getTreeFromXml(self.LOG_TEMPLATE)
         self.tree.append(el)
     el.find(".//TargetBucket").text = target_prefix_uri.bucket()
     el.find(".//TargetPrefix").text = target_prefix_uri.object()
예제 #6
0
 def __str__(self):
     tree = getTreeFromXml(ACL.EMPTY_ACL)
     tree.attrib['xmlns'] = "http://s3.amazonaws.com/doc/2006-03-01/"
     owner = tree.find(".//Owner//ID")
     owner.text = self.owner_id
     acl = tree.find(".//AccessControlList")
     for grantee in self.grantees:
         acl.append(grantee.getElement())
     return ET.tostring(tree)
예제 #7
0
파일: ACL.py 프로젝트: sirpengi/s3cmd
 def __str__(self):
     tree = getTreeFromXml(ACL.EMPTY_ACL)
     tree.attrib['xmlns'] = "http://s3.amazonaws.com/doc/2006-03-01/"
     owner = tree.find(".//Owner//ID")
     owner.text = self.owner_id
     acl = tree.find(".//AccessControlList")
     for grantee in self.grantees:
         acl.append(grantee.getElement())
     return ET.tostring(tree)
예제 #8
0
	def __init__(self, xml = None, tree = None):
		if not xml:
			xml = DistributionConfig.EMPTY_CONFIG

		if not tree:
			tree = getTreeFromXml(xml)

		if tree.tag != "DistributionConfig":
			raise ValueError("Expected <DistributionConfig /> xml, got: <%s />" % tree.tag)
		self.parse(tree)
예제 #9
0
파일: CloudFront.py 프로젝트: Jimdo/s3cmd
	def __init__(self, xml = None, tree = None):
		if xml is None:
			xml = DistributionConfig.EMPTY_CONFIG

		if tree is None:
			tree = getTreeFromXml(xml)

		if tree.tag != "DistributionConfig":
			raise ValueError("Expected <DistributionConfig /> xml, got: <%s />" % tree.tag)
		self.parse(tree)
예제 #10
0
파일: ACL.py 프로젝트: sirpengi/s3cmd
    def __init__(self, xml = None):
        if not xml:
            xml = ACL.EMPTY_ACL

        self.grantees = []
        self.owner_id = ""
        self.owner_nick = ""

        tree = getTreeFromXml(xml)
        self.parseOwner(tree)
        self.parseGrants(tree)
예제 #11
0
    def __init__(self, xml=None):
        if not xml:
            xml = ACL.EMPTY_ACL

        self.grantees = []
        self.owner_id = ""
        self.owner_nick = ""

        tree = getTreeFromXml(xml)
        self.parseOwner(tree)
        self.parseGrants(tree)
예제 #12
0
    def get_parts_information(self, uri, upload_id):
        multipart_response = self.s3.list_multipart(uri, upload_id)
        tree = getTreeFromXml(multipart_response['data'])

        parts = dict()
        for elem in parseNodes(tree):
            try:
                parts[int(elem['PartNumber'])] = {'checksum': elem['ETag'], 'size': elem['Size']}
            except KeyError:
                pass

        return parts
예제 #13
0
    def get_parts_information(self, uri, upload_id):
        multipart_response = self.s3.list_multipart(uri, upload_id)
        tree = getTreeFromXml(multipart_response['data'])

        parts = defaultdict(lambda: None)
        for elem in parseNodes(tree):
            try:
                parts[int(elem['PartNumber'])] = {
                    'checksum': elem['ETag'],
                    'size': elem['Size']
                }
            except KeyError:
                pass

        return parts
예제 #14
0
	def __init__(self, response):
		self.status = response["status"]
		self.reason = response["reason"]
		self.info = {}
		debug("S3Error: %s (%s)" % (self.status, self.reason))
		if response.has_key("headers"):
			for header in response["headers"]:
				debug("HttpHeader: %s: %s" % (header, response["headers"][header]))
		if response.has_key("data"):
			tree = getTreeFromXml(response["data"])
			error_node = tree
			if not error_node.tag == "Error":
				error_node = tree.find(".//Error")
			for child in error_node.getchildren():
				if child.text != "":
					debug("ErrorXML: " + child.tag + ": " + repr(child.text))
					self.info[child.tag] = child.text
예제 #15
0
    def get_unique_upload_id(self, uri):
        upload_id = None
        multipart_response = self.s3.get_multipart(uri)
        tree = getTreeFromXml(multipart_response['data'])
        for mpupload in parseNodes(tree):
            try:
                mp_upload_id = mpupload['UploadId']
                mp_path = mpupload['Key']
                info("mp_path: %s, object: %s" % (mp_path, uri.object()))
                if mp_path == uri.object():
                    if upload_id is not None:
                        raise ValueError("More than one UploadId for URI %s.  Disable multipart upload, or use\n %s multipart %s\nto list the Ids, then pass a unique --upload-id into the put command." % (uri, sys.argv[0], uri))
                    upload_id = mp_upload_id
            except KeyError:
                pass

        return upload_id
예제 #16
0
    def get_unique_upload_id(self, uri):
        upload_id = None
        multipart_response = self.s3.get_multipart(uri)
        tree = getTreeFromXml(multipart_response['data'])
        for mpupload in parseNodes(tree):
            try:
                mp_upload_id = mpupload['UploadId']
                mp_path = mpupload['Key']
                info("mp_path: %s, object: %s" % (mp_path, uri.object()))
                if mp_path == uri.object():
                    if upload_id is not None:
                        raise ValueError(
                            "More than one UploadId for URI %s.  Disable multipart upload, or use\n %s multipart %s\nto list the Ids, then pass a unique --upload-id into the put command."
                            % (uri, sys.argv[0], uri))
                    upload_id = mp_upload_id
            except KeyError:
                pass

        return upload_id
예제 #17
0
    def __init__(self, response):
        self.status = response["status"]
        self.reason = response["reason"]
        self.info = {"Code": "", "Message": "", "Resource": ""}
        debug("S3Error: %s (%s)" % (self.status, self.reason))
        if response.has_key("headers"):
            for header in response["headers"]:
                debug("HttpHeader: %s: %s" %
                      (header, response["headers"][header]))
        if response.has_key("data") and response["data"]:
            try:
                tree = getTreeFromXml(response["data"])
            except ET.ParseError:
                debug("Not an XML response")
            else:
                self.info.update(self.parse_error_xml(tree))

        self.code = self.info["Code"]
        self.message = self.info["Message"]
        self.resource = self.info["Resource"]
예제 #18
0
파일: Exceptions.py 프로젝트: abg1979/s3cmd
    def __init__(self, response):
        self.status = response["status"]
        self.reason = response["reason"]
        self.info = {
            "Code" : "",
            "Message" : "",
            "Resource" : ""
        }
        debug("S3Error: %s (%s)" % (self.status, self.reason))
        if response.has_key("headers"):
            for header in response["headers"]:
                debug("HttpHeader: %s: %s" % (header, response["headers"][header]))
        if response.has_key("data") and response["data"]:
            try:
                tree = getTreeFromXml(response["data"])
            except ET.ParseError:
                debug("Not an XML response")
            else:
                self.info.update(self.parse_error_xml(tree))

        self.code = self.info["Code"]
        self.message = self.info["Message"]
        self.resource = self.info["Resource"]
예제 #19
0
파일: CloudFront.py 프로젝트: Jimdo/s3cmd
	def __init__(self, xml):
		tree = getTreeFromXml(xml)
		if tree.tag != "DistributionList":
			raise ValueError("Expected <DistributionList /> xml, got: <%s />" % tree.tag)
		self.parse(tree)
예제 #20
0
파일: CloudFront.py 프로젝트: Jimdo/s3cmd
	def __init__(self, xml):
		tree = getTreeFromXml(xml)
		if tree.tag != "Invalidation":
			raise ValueError("Expected <Invalidation /> xml, got: <%s />" % tree.tag)
		self.parse(tree)
예제 #21
0
 def __init__(self, xml):
     tree = getTreeFromXml(xml)
     if tree.tag != "DistributionList":
         raise ValueError("Expected <DistributionList /> xml, got: <%s />" %
                          tree.tag)
     self.parse(tree)
예제 #22
0
 def __init__(self, xml):
     tree = getTreeFromXml(xml)
     if tree.tag != "Invalidation":
         raise ValueError("Expected <Invalidation /> xml, got: <%s />" %
                          tree.tag)
     self.parse(tree)
예제 #23
0
 def __init__(self, xml=None):
     if not xml:
         xml = self.LOG_DISABLED
     self.tree = getTreeFromXml(xml)
     self.tree.attrib['xmlns'] = "http://doc.s3.amazonaws.com/2006-03-01"
예제 #24
0
 def __init__(self, xml=None):
     if not xml:
         xml = self.LOG_DISABLED
     self.tree = getTreeFromXml(xml)
     self.tree.attrib['xmlns'] = "http://doc.s3.amazonaws.com/2006-03-01"