1
1
# -*- coding: utf-8 -*-
2
2
3
- import requests
4
3
import re
4
+
5
+ import requests
6
+
5
7
from . import config
6
8
from .logger import logger
7
9
10
+
8
11
def __return_wraper (response , content_consumed = False ):
9
12
"""
10
13
UCloud UFile 服务器响应的封装
@@ -17,7 +20,8 @@ def __return_wraper(response, content_consumed=False):
17
20
if response .status_code not in [200 , 204 , 206 ]:
18
21
return None , ResponseInfo (response )
19
22
content_type = response .headers .get ('Content-Type' )
20
- ret = {} if content_consumed else response .json () if isinstance (content_type , str ) and content_type .startswith ('application/json' ) else {}
23
+ ret = {} if content_consumed else response .json () if isinstance (content_type , str ) and content_type .startswith (
24
+ 'application/json' ) and response .text != "" else {}
21
25
return ret , ResponseInfo (response , None , content_consumed )
22
26
23
27
@@ -69,6 +73,7 @@ def _post_file(url, header, data):
69
73
return None , ResponseInfo (None , e )
70
74
return __return_wraper (response )
71
75
76
+
72
77
def _uploadhit_file (url , header , params ):
73
78
"""
74
79
秒传文件到空间
@@ -102,7 +107,8 @@ def _delete_file(url, header):
102
107
return None , ResponseInfo (None , e )
103
108
return __return_wraper (response )
104
109
105
- def _head_file (url ,header ):
110
+
111
+ def _head_file (url , header ):
106
112
"""
107
113
获取文件信息
108
114
@@ -112,11 +118,12 @@ def _head_file(url,header):
112
118
:return: ResponseInfo: 响应的具体信息,UCloud UFile 服务器返回信息或者网络链接异常
113
119
"""
114
120
try :
115
- response = requests .head (url , headers = header , timeout = config .get_default ('connection_timeout' ))
121
+ response = requests .head (url , headers = header , timeout = config .get_default ('connection_timeout' ))
116
122
except requests .RequestException as e :
117
123
return None , ResponseInfo (None , e )
118
124
return __return_wraper (response )
119
125
126
+
120
127
def _initialsharding (url , header ):
121
128
"""
122
129
初始化分片请求
@@ -160,7 +167,8 @@ def _finishsharding(url, param, header, data):
160
167
:return: ResponseInfo: 响应的具体信息,UCloud UFile 服务器返回信息或者网络链接异常
161
168
"""
162
169
try :
163
- response = requests .post (url , headers = header , params = param , data = data , timeout = config .get_default ('connection_timeout' ))
170
+ response = requests .post (url , headers = header , params = param , data = data ,
171
+ timeout = config .get_default ('connection_timeout' ))
164
172
except requests .RequestException as e :
165
173
return None , ResponseInfo (None , e )
166
174
return __return_wraper (response )
@@ -188,6 +196,7 @@ def _download_file(url, header, localfile):
188
196
return __return_wraper (response )
189
197
return __return_wraper (response , True )
190
198
199
+
191
200
def _getfilelist (url , header , param ):
192
201
"""
193
202
获取文件列表
@@ -205,6 +214,7 @@ def _getfilelist(url, header, param):
205
214
return None , ResponseInfo (None , e )
206
215
return __return_wraper (response )
207
216
217
+
208
218
def _listobjects (url , header , param ):
209
219
"""
210
220
获取目录文件列表
@@ -222,6 +232,7 @@ def _listobjects(url, header, param):
222
232
return None , ResponseInfo (None , e )
223
233
return __return_wraper (response )
224
234
235
+
225
236
def _restore_file (url , header ):
226
237
"""
227
238
解冻冷存文件请求
@@ -238,6 +249,7 @@ def _restore_file(url, header):
238
249
return None , ResponseInfo (None , e )
239
250
return __return_wraper (response )
240
251
252
+
241
253
def _classswitch_file (url , header , params ):
242
254
"""
243
255
文件存储类型转换请求
@@ -255,6 +267,7 @@ def _classswitch_file(url, header, params):
255
267
return None , ResponseInfo (None , e )
256
268
return __return_wraper (response )
257
269
270
+
258
271
def _copy_file (url , header ):
259
272
"""
260
273
拷贝文件到空间
@@ -271,6 +284,7 @@ def _copy_file(url, header):
271
284
return None , ResponseInfo (None , e )
272
285
return __return_wraper (response )
273
286
287
+
274
288
def _rename_file (url , header , params ):
275
289
"""
276
290
重命名文件到空间
@@ -288,6 +302,7 @@ def _rename_file(url, header, params):
288
302
return None , ResponseInfo (None , e )
289
303
return __return_wraper (response )
290
304
305
+
291
306
def _bucket_request (url , param , header ):
292
307
"""
293
308
UCloud UFile 空间管理请求
@@ -320,6 +335,7 @@ class ResponseInfo(object):
320
335
ret_code: Integer类型, UCloud UFile 服务内部错误码,正确服务或者网络连接则为0
321
336
etag: string类型,文件的etag,无则为None
322
337
"""
338
+
323
339
def __init__ (self , response , exception = None , content_consumed = False ):
324
340
"""
325
341
初始化 ResponseInfo 实例
@@ -358,7 +374,8 @@ def __init__(self, response, exception=None, content_consumed=False):
358
374
self .content_range = None
359
375
self .etag = response .headers .get ('Etag' )
360
376
if self .status_code not in [200 , 204 , 206 ]:
361
- ret = response .json () if response .headers .get ('Content-Type' ) == 'application/json' and len (response .text ) > 0 else None
377
+ ret = response .json () if response .headers .get (
378
+ 'Content-Type' ) == 'application/json' and response .text != "" else None
362
379
if ret is None :
363
380
self .error = 'unknown error'
364
381
self .ret_code = - 1
0 commit comments