in s3booster-snowball-v1.py [0:0]
def upload_get_files(sub_prefix, q):
num_obj=0
sum_size = 0
org_files_list = []
# get all files from given directory
for r,d,f in os.walk(sub_prefix):
for file in f:
try:
file_name = os.path.join(r,file)
# support compatibility of MAC and windows
file_name = unicodedata.normalize('NFC', file_name)
if os.name == 'nt':
obj_name = prefix_root + file_name.replace(sub_prefix,'',1).replace('\\', '/')
else:
obj_name = prefix_root + file_name.replace(sub_prefix,'',1)
f_size = os.stat(file_name).st_size
file_info = (file_name, obj_name, f_size)
org_files_list.append(file_info)
sum_size = sum_size + f_size
if max_tarfile_size < sum_size:
sum_size = 0
mp_data = org_files_list
org_files_list = []
try:
# put files into queue in max_tarfile_size
q.put(mp_data)
success_log.debug('0, sending mp_data size: %s'% len(mp_data))
success_log.debug('0, sending mp_data: %s'% mp_data)
except Exception as e:
error_log.info('exception error: putting %s into queue is failed' % file_name)
error_log.info(e)
num_obj+=1
except Exception as e:
error_log.info('exception error: getting %s file info is failed' % file_name)
error_log.info(e)
#time.sleep(0.1)
try:
# put remained files into queue
mp_data = org_files_list
q.put(mp_data)
success_log.debug('1, sending mp_data size: %s'% len(mp_data))
success_log.debug('1, sending mp_data: %s'% mp_data)
except Exception as e:
error_log.info('exception error: putting %s into queue is failed' % file_name)
error_log.info(e)
return num_obj