def parse_buckets(xml):
     
     root = ET.fromstring(xml)
     buckets = root.find('{0}Buckets'.format(ListAllMyBuckets.NS)).findall('{0}Bucket'.format(ListAllMyBuckets.NS))
     entries = []
     
     for bucket in buckets:
         name = bucket.find("{0}Name".format(ListAllMyBuckets.NS)).text  #获取bucket的名称
         d = bucket.find("{0}CreationDate".format(ListAllMyBuckets.NS)).text  #获取bucket的创建日期
         creation_date = Utils.transfer_date(d)  #将创建日期转换为当地时间
         
         curr_bucket = Bucket(name, creation_date) #创建bucket对象
         entries.append(curr_bucket)  #向entries列表中添加bucket对象   
     
     return entries
示例#2
0
    def load_xml_file(self, xml):

        root = ET.fromstring(xml)  #获取xml文件的根节点root

        self.name = self.find_item(root, '{0}Name'.format(ListObjects.NS))
        self.prefix = self.find_item(root, '{0}Prefix'.format(ListObjects.NS))
        self.marker = self.find_item(root, '{0}Marker'.format(ListObjects.NS))
        self.delimiter = self.find_item(root,
                                        '{0}Delimiter'.format(ListObjects.NS))
        self.max_keys = self.find_item(root,
                                       '{0}MaxKeys'.format(ListObjects.NS))
        is_truncated = self.find_item(root,
                                      '{0}IsTruncated'.format(ListObjects.NS))
        self.is_truncated = self.convert_bool_value(is_truncated)
        self.next_marker = self.find_item(
            root, '{0}NextMarker'.format(ListObjects.NS))

        #获取对象key的相关信息,在Contents节点中
        contents = root.findall('{0}Contents'.format(ListObjects.NS))
        if contents is not None:
            for node in contents:
                key = self.find_item(node, '{0}Key'.format(ListObjects.NS))
                t = self.find_item(node,
                                   '{0}LastModified'.format(ListObjects.NS))
                lastmodified = Utils.transfer_date(t)
                etag = self.find_item(node, '{0}ETag'.format(ListObjects.NS))
                size = long(
                    self.find_item(node, '{0}Size'.format(ListObjects.NS)))

                #获取Owner相关信息
                owner_id = self.find_item(node,
                                          './/{0}ID'.format(ListObjects.NS))
                owner_name = self.find_item(
                    node, './/{0}DisplayName'.format(ListObjects.NS))
                owner = Owner(owner_id, owner_name)  #创建Owner对象

                key_entry = ObjectEntry(key, lastmodified, etag, size, owner)
                self.key_entries.append(key_entry)  #将对象添加到对象列表中
                self.keyslist.append(key_entry.key)  #将对象名添加到列表中

        #获取CommonPrefixes的相关信息
        prefixes = root.findall('{0}CommonPrefixes'.format(ListObjects.NS))
        if prefixes is not None:
            for p in prefixes:
                pre = self.find_item(p, '{0}Prefix'.format(ListObjects.NS))
                commonprefix = CommonPrefix(pre)
                self.commonprefix_entries.append(commonprefix)
示例#3
0
    def parse_buckets(xml):

        root = ET.fromstring(xml)
        buckets = root.find('{0}Buckets'.format(ListAllMyBuckets.NS)).findall(
            '{0}Bucket'.format(ListAllMyBuckets.NS))
        entries = []

        for bucket in buckets:
            name = bucket.find("{0}Name".format(
                ListAllMyBuckets.NS)).text  #获取bucket的名称
            d = bucket.find("{0}CreationDate".format(
                ListAllMyBuckets.NS)).text  #获取bucket的创建日期
            creation_date = Utils.transfer_date(d)  #将创建日期转换为当地时间

            curr_bucket = Bucket(name, creation_date)  #创建bucket对象
            entries.append(curr_bucket)  #向entries列表中添加bucket对象

        return entries
    def load_xml_file(self, xml):
        
        root = ET.fromstring(xml)  #获取xml文件的根节点root       

        self.name = self.find_item(root, '{0}Name'.format(ListObjects.NS))
        self.prefix = self.find_item(root, '{0}Prefix'.format(ListObjects.NS))      
        self.marker = self.find_item(root, '{0}Marker'.format(ListObjects.NS))
        self.delimiter = self.find_item(root, '{0}Delimiter'.format(ListObjects.NS))
        self.max_keys = self.find_item(root, '{0}MaxKeys'.format(ListObjects.NS))
        is_truncated = self.find_item(root, '{0}IsTruncated'.format(ListObjects.NS))
        self.is_truncated = self.convert_bool_value(is_truncated)
        self.next_marker = self.find_item(root, '{0}NextMarker'.format(ListObjects.NS))
        
        #获取对象key的相关信息,在Contents节点中
        contents = root.findall('{0}Contents'.format(ListObjects.NS))
        if contents is not None:
            for node in contents:
                key = self.find_item(node, '{0}Key'.format(ListObjects.NS))
                t = self.find_item(node, '{0}LastModified'.format(ListObjects.NS))
                lastmodified = Utils.transfer_date(t)
                etag = self.find_item(node, '{0}ETag'.format(ListObjects.NS))
                size  = long(self.find_item(node, '{0}Size'.format(ListObjects.NS)))
            
                #获取Owner相关信息                
                owner_id = self.find_item(node, './/{0}ID'.format(ListObjects.NS))
                owner_name = self.find_item(node, './/{0}DisplayName'.format(ListObjects.NS))
                owner = Owner(owner_id, owner_name)  #创建Owner对象
        
                key_entry = ObjectEntry(key, lastmodified, etag, size, owner)
                self.key_entries.append(key_entry)  #将对象添加到对象列表中
                self.keyslist.append(key_entry.key) #将对象名添加到列表中

        #获取CommonPrefixes的相关信息
        prefixes = root.findall('{0}CommonPrefixes'.format(ListObjects.NS))
        if prefixes is not None: 
            for p in prefixes:
                pre = self.find_item(p, '{0}Prefix'.format(ListObjects.NS))
                commonprefix = CommonPrefix(pre)                
                self.commonprefix_entries.append(commonprefix)