@@ -51,19 +51,22 @@ def put_file(up_token, key, file_path, params=None,
5151 """
5252 ret = {}
5353 size = os .stat (file_path ).st_size
54+ # fname = os.path.basename(file_path)
5455 with open (file_path , 'rb' ) as input_stream :
56+ file_name = os .path .basename (file_path )
5557 if size > config ._BLOCK_SIZE * 2 :
56- ret , info = put_stream (up_token , key , input_stream , size , params ,
58+ ret , info = put_stream (up_token , key , input_stream , file_name , size , params ,
5759 mime_type , progress_handler ,
5860 upload_progress_recorder = upload_progress_recorder ,
5961 modify_time = (int )(os .path .getmtime (file_path )))
6062 else :
6163 crc = file_crc32 (file_path ) if check_crc else None
62- ret , info = _form_put (up_token , key , input_stream , params , mime_type , crc , progress_handler )
64+ ret , info = _form_put (up_token , key , input_stream , params , mime_type , crc , progress_handler , file_name )
65+ # ret, info = _form_put(up_token, key, input_stream, params, mime_type, crc, progress_handler)
6366 return ret , info
6467
6568
66- def _form_put (up_token , key , data , params , mime_type , crc , progress_handler = None ):
69+ def _form_put (up_token , key , data , params , mime_type , crc , progress_handler = None , file_name = None ):
6770 fields = {}
6871 if params :
6972 for k , v in params .items ():
@@ -72,11 +75,14 @@ def _form_put(up_token, key, data, params, mime_type, crc, progress_handler=None
7275 fields ['crc32' ] = crc
7376 if key is not None :
7477 fields ['key' ] = key
78+
7579 fields ['token' ] = up_token
7680 url = 'http://' + config .get_default ('default_up_host' ) + '/'
77- name = key if key else 'filename'
81+ # name = key if key else file_name
82+
83+ fname = file_name
7884
79- r , info = http ._post_file (url , data = fields , files = {'file' : (name , data , mime_type )})
85+ r , info = http ._post_file (url , data = fields , files = {'file' : (fname , data , mime_type )})
8086 if r is None and info .need_retry ():
8187 if info .connect_failed :
8288 url = 'http://' + config .get_default ('default_up_host_backup' ) + '/'
@@ -86,16 +92,16 @@ def _form_put(up_token, key, data, params, mime_type, crc, progress_handler=None
8692 data .seek (0 )
8793 else :
8894 return r , info
89- r , info = http ._post_file (url , data = fields , files = {'file' : (name , data , mime_type )})
95+ r , info = http ._post_file (url , data = fields , files = {'file' : (fname , data , mime_type )})
9096
9197 return r , info
9298
9399
94- def put_stream (up_token , key , input_stream , data_size , params = None ,
100+ def put_stream (up_token , key , input_stream , file_name , data_size , params = None ,
95101 mime_type = None , progress_handler = None ,
96102 upload_progress_recorder = None , modify_time = None ):
97103 task = _Resume (up_token , key , input_stream , data_size , params , mime_type ,
98- progress_handler , upload_progress_recorder , modify_time )
104+ progress_handler , upload_progress_recorder , modify_time , file_name )
99105 return task .upload ()
100106
101107
@@ -119,7 +125,7 @@ class _Resume(object):
119125 """
120126
121127 def __init__ (self , up_token , key , input_stream , data_size , params , mime_type ,
122- progress_handler , upload_progress_recorder , modify_time ):
128+ progress_handler , upload_progress_recorder , modify_time , file_name ):
123129 """初始化断点续上传"""
124130 self .up_token = up_token
125131 self .key = key
@@ -130,9 +136,9 @@ def __init__(self, up_token, key, input_stream, data_size, params, mime_type,
130136 self .progress_handler = progress_handler
131137 self .upload_progress_recorder = upload_progress_recorder or UploadProgressRecorder ()
132138 self .modify_time = modify_time or time .time ()
133-
134- print (self .modify_time )
135- print (modify_time )
139+ self . file_name = file_name
140+ # print(self.modify_time)
141+ # print(modify_time)
136142
137143 def record_upload_progress (self , offset ):
138144 record_data = {
@@ -142,12 +148,11 @@ def record_upload_progress(self, offset):
142148 }
143149 if self .modify_time :
144150 record_data ['modify_time' ] = self .modify_time
145-
146- print (record_data )
147- self .upload_progress_recorder .set_upload_record (self .key , record_data )
151+ # print(record_data)
152+ self .upload_progress_recorder .set_upload_record (self .file_name , self .key , record_data )
148153
149154 def recovery_from_record (self ):
150- record = self .upload_progress_recorder .get_upload_record (self .key )
155+ record = self .upload_progress_recorder .get_upload_record (self .file_name , self . key )
151156 if not record :
152157 return 0
153158
@@ -157,7 +162,6 @@ def recovery_from_record(self):
157162 return 0
158163 except KeyError :
159164 return 0
160-
161165 self .blockStatus = [{'ctx' : ctx } for ctx in record ['contexts' ]]
162166 return record ['offset' ]
163167
@@ -178,7 +182,6 @@ def upload(self):
178182 ret , info = self .make_block (block , length , host )
179183 if ret is None or crc != ret ['crc32' ]:
180184 return ret , info
181-
182185 self .blockStatus .append (ret )
183186 offset += length
184187 self .record_upload_progress (offset )
@@ -203,11 +206,15 @@ def file_url(self, host):
203206 if self .key is not None :
204207 url .append ('key/{0}' .format (urlsafe_base64_encode (self .key )))
205208
209+ if self .file_name is not None :
210+ url .append ('fname/{0}' .format (urlsafe_base64_encode (self .file_name )))
211+
206212 if self .params :
207213 for k , v in self .params .items ():
208214 url .append ('{0}/{1}' .format (k , urlsafe_base64_encode (v )))
209-
215+ pass
210216 url = '/' .join (url )
217+ # print url
211218 return url
212219
213220 def make_file (self , host ):
0 commit comments