# This is a sample Python script.
# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
import os
import sys
import json
import time
import math
import hashlib
import datetime
import requests
# from log import log
hostName = "http://abc.example.com"
class uploadFileSection:
def do_upload_slice(self, file_path, offset, size, file_name, file_total_size, is_end, session_id, task_code, index):
targetFile = open(file_path, 'rb')
targetFile.seek(offset)
fileContent = targetFile.read(size) # 文件名无效,这里是纯二进制数据
targetFile.close()
try:
starttime = datetime.datetime.now() # 计算单词请求时间开始
get = SoftwareChunkUpload(session_id, file_name, fileContent, task_code, )
req, resp = get.getData()
timeout = float(timeout)
resp = _send_http_request(req, timeout)
endtime = datetime.datetime.now()# 计算单词请求时间结束
print((endtime - starttime).seconds)# 单词请求耗费时间
except Exception as e:
exit()
return False
def do_upload(self, file_path, session_id, task_code, index):
file_total_size = os.path.getsize(file_path)
chunk_size = 102400
chunks = math.ceil(file_total_size / chunk_size)
file_path = file_path.replace('\\', '/')
file_names = file_path.split('/')
file_name = file_names[-1]
print('file', file_path, 'size', file_total_size, 'chunk_size', chunk_size, 'chunks', chunks)
starttime = datetime.datetime.now()
for i in range(chunks):
print('chunk', i)
if i + 1 == chunks:
is_end = 1
current_size = file_total_size % chunk_size
else:
is_end = 0
current_size = chunk_size
self.do_upload_slice(file_path, i * chunk_size, current_size, file_name, file_total_size, is_end, session_id, task_code, index)
endtime = datetime.datetime.now()
print((endtime - starttime).seconds)
'''
参数
'''
if __name__ == "__main__":
work = uploadFileSection()
work.do_upload('/home/zflaptop/Desktop/tea.tar', 'session_id', 'task_code', 'index')
09-25
09-25
09-25
11-20