Пример #1
0
    def run(self):
        for part in self.part_msg_list:
            if len(part) == 5:
                bucket = self.bucket
                file_name = part[1]
                if isinstance(file_name, unicode):
                    filename = file_name.encode('utf-8')
                object_name = file_name
                retry_times = 5
                is_skip = False
                while True:
                    try:
                        if retry_times <= 0:
                            break
                        res = self.oss.head_object(bucket, object_name)
                        if res.status == 200:
                            header_map = convert_header2map(res.getheaders())
                            etag = safe_get_element("etag", header_map)
                            md5 = part[2] 
                            if etag.replace('"', "").upper() == md5.upper():
                                is_skip = True
                        break
                    except:
                        retry_times = retry_times - 1
                        time.sleep(1)

                if is_skip:
                    continue

                partsize = part[3]
                offset = part[4]
                retry_times = 5
                while True:
                    try:
                        if retry_times <= 0:
                            break
                        res = self.oss.put_object_from_file_given_pos(bucket, object_name, self.file_path, offset, partsize)
                        if res.status != 200:
                            print "upload ", file_name, "failed!"," ret is:", res.status
                            print "headers", res.getheaders()      
                            retry_times = retry_times - 1
                            time.sleep(1)
                        else:
                            break
                    except:
                        retry_times = retry_times - 1
                        time.sleep(1)
                    
            else:
                print "ERROR! part", part , " is not as expected!"
Пример #2
0
    def run(self):
        for part in self.part_msg_list:
            if len(part) == 5:
                bucket = self.bucket
                file_name = part[1]
                if isinstance(file_name, str):
                    filename = file_name.encode('utf-8')
                object_name = file_name
                retry_times = self.retry_times
                is_skip = False
                while True:
                    try:
                        if retry_times <= 0:
                            break
                        res = self.oss.head_object(bucket, object_name)
                        if res.status == 200:
                            header_map = convert_header2map(res.getheaders())
                            etag = safe_get_element("etag", header_map)
                            md5 = part[2]
                            if etag.replace('"', "").upper() == md5.upper():
                                is_skip = True
                        break
                    except:
                        retry_times = retry_times - 1
                        time.sleep(1)

                if is_skip:
                    continue

                partsize = part[3]
                offset = part[4]
                retry_times = self.retry_times
                while True:
                    try:
                        if retry_times <= 0:
                            break
                        res = self.oss.put_object_from_file_given_pos(bucket, object_name, self.file_path, offset, partsize)
                        if res.status != 200:
                            print("upload ", file_name, "failed!", " ret is:", res.status)
                            print("headers", res.getheaders())
                            retry_times = retry_times - 1
                            time.sleep(1)
                        else:
                            break
                    except:
                        retry_times = retry_times - 1
                        time.sleep(1)

            else:
                print("ERROR! part", part , " is not as expected!")
Пример #3
0
    def run(self):
        for part in self.part_msg_list:
            if len(part) == 5:
                bucket = self.bucket
                file_name = part[1]
                object_name = file_name
                res = self.oss.head_object(bucket, object_name)
                if res.status == 200:
                    header_map = convert_header2map(res.getheaders())
                    etag = safe_get_element("etag", header_map)
                    md5 = part[2] 
                    if etag.replace('"', "").upper() == md5.upper():
                        continue

                partsize = part[3]
                offset = part[4]
                res = self.oss.put_object_from_file_given_pos(bucket, object_name, self.file_path, offset, partsize)
                if res.status != 200:
                    print "upload ", file_name, "failed!"," ret is:", res.status
                    print "headers", res.getheaders()      
            else:
                print "ERROR! part", part , " is not as expected!"
Пример #4
0
    def run(self):
        for part in self.part_msg_list:
            if len(part) == 5:
                bucket = self.bucket
                file_name = part[1]
                object_name = file_name
                res = self.oss.head_object(bucket, object_name)
                if res.status == 200:
                    header_map = convert_header2map(res.getheaders())
                    etag = safe_get_element("etag", header_map)
                    md5 = part[2] 
                    if etag.replace('"', "").upper() == md5.upper():
                        continue

                partsize = part[3]
                offset = part[4]
                res = self.oss.put_object_from_file_given_pos(bucket, object_name, self.file_path, offset, partsize)
                if res.status != 200:
                    print "upload ", file_name, "failed!"," ret is:", res.status
                    print "headers", res.getheaders()      
            else:
                print "ERROR! part", part , " is not as expected!"
Пример #5
0
    def run(self):
        for part in self.part_msg_list:
            part_number = str(part[0])
            if len(part) == 5:
                bucket = self.bucket
                object = self.object
                if part_number in self.uploaded_part_map:
                    md5 = part[2]
                    if self.uploaded_part_map[part_number].replace('"', "").upper() == md5.upper():
                        continue

                partsize = part[3]
                offset = part[4]
                retry_times = self.retry_times
                while True:
                    try:
                        if retry_times <= 0:
                            break
                        res = self.oss.upload_part_from_file_given_pos(bucket, object, self.file_path, offset, partsize, self.upload_id, part_number)
                        if res.status != 200:
                            self.logger.warn("Upload %s/%s from %s, failed! ret is:%s." %(bucket, object, self.file_path, res.status))
                            self.logger.warn("headers:%s" % res.getheaders())
                            retry_times = retry_times - 1
                            time.sleep(1)
                        else:
                            self.logger.info("Upload %s/%s from %s, OK! ret is:%s." % (bucket, object, self.file_path, res.status))
                            break
                    except:
                        retry_times = retry_times - 1
                        time.sleep(1)
            else:
                self.logger.error("ERROR! part %s is not as expected!" % part)
Пример #6
0
    def run(self):
        for part in self.part_msg_list:
            part_number = str(part[0]) 
            if len(part) == 5:
                bucket = self.bucket
                object = self.object
                if self.uploaded_part_map.has_key(part_number):
                    md5 = part[2] 
                    if self.uploaded_part_map[part_number].replace('"', "").upper() == md5.upper():
                        continue

                partsize = part[3]
                offset = part[4]
                retry_times = 5
                while True:
                    try:
                        if retry_times <= 0:
                            break
                        l.acquire()
                        res = self.oss.upload_part_from_file_given_pos(bucket, object, self.file_path, offset, partsize, self.upload_id, part_number)
                        l.release()
                        if res.status != 200:
                            print "upload ", bucket, object, self.file_path, "failed!"," ret is:", res.status
                            print "headers", res.getheaders()      
                            retry_times = retry_times - 1
                            time.sleep(1)
                        else:
                            break
                    except:
                        retry_times = retry_times - 1
                        time.sleep(1)
            else:
                print "ERROR! part", part , " is not as expected!"