@@ -59,7 +59,9 @@ def list(self, bucket, prefix=None, marker=None, limit=None, delimiter=None):
59
59
if delimiter is not None :
60
60
options ['delimiter' ] = delimiter
61
61
62
- url = '{0}/list' .format (config .get_default ('default_rsf_host' ))
62
+ ak = self .auth .get_access_key ()
63
+ rs_host = self .zone .get_rsf_host (ak , bucket )
64
+ url = '{0}/list' .format (rs_host )
63
65
ret , info = self .__get (url , options )
64
66
65
67
eof = False
@@ -90,7 +92,7 @@ def stat(self, bucket, key):
90
92
一个ResponseInfo对象
91
93
"""
92
94
resource = entry (bucket , key )
93
- return self .__rs_do ('stat' , resource )
95
+ return self .__rs_do (bucket , 'stat' , resource )
94
96
95
97
def delete (self , bucket , key ):
96
98
"""删除文件:
@@ -107,7 +109,7 @@ def delete(self, bucket, key):
107
109
一个ResponseInfo对象
108
110
"""
109
111
resource = entry (bucket , key )
110
- return self .__rs_do ('delete' , resource )
112
+ return self .__rs_do (bucket , 'delete' , resource )
111
113
112
114
def rename (self , bucket , key , key_to , force = 'false' ):
113
115
"""重命名文件:
@@ -143,7 +145,7 @@ def move(self, bucket, key, bucket_to, key_to, force='false'):
143
145
"""
144
146
resource = entry (bucket , key )
145
147
to = entry (bucket_to , key_to )
146
- return self .__rs_do ('move' , resource , to , 'force/{0}' .format (force ))
148
+ return self .__rs_do (bucket , 'move' , resource , to , 'force/{0}' .format (force ))
147
149
148
150
def copy (self , bucket , key , bucket_to , key_to , force = 'false' ):
149
151
"""复制文件:
@@ -163,7 +165,7 @@ def copy(self, bucket, key, bucket_to, key_to, force='false'):
163
165
"""
164
166
resource = entry (bucket , key )
165
167
to = entry (bucket_to , key_to )
166
- return self .__rs_do ('copy' , resource , to , 'force/{0}' .format (force ))
168
+ return self .__rs_do (bucket , 'copy' , resource , to , 'force/{0}' .format (force ))
167
169
168
170
def fetch (self , url , bucket , key = None , hostscache_dir = None ):
169
171
"""抓取文件:
@@ -217,7 +219,7 @@ def change_mime(self, bucket, key, mime):
217
219
"""
218
220
resource = entry (bucket , key )
219
221
encode_mime = urlsafe_base64_encode (mime )
220
- return self .__rs_do ('chgm' , resource , 'mime/{0}' .format (encode_mime ))
222
+ return self .__rs_do (bucket , 'chgm' , resource , 'mime/{0}' .format (encode_mime ))
221
223
222
224
def change_type (self , bucket , key , storage_type ):
223
225
"""修改文件的存储类型
@@ -231,7 +233,7 @@ def change_type(self, bucket, key, storage_type):
231
233
storage_type: 待操作资源存储类型,0为普通存储,1为低频存储,2 为归档存储,3 为深度归档
232
234
"""
233
235
resource = entry (bucket , key )
234
- return self .__rs_do ('chtype' , resource , 'type/{0}' .format (storage_type ))
236
+ return self .__rs_do (bucket , 'chtype' , resource , 'type/{0}' .format (storage_type ))
235
237
236
238
def restoreAr (self , bucket , key , freezeAfter_days ):
237
239
"""解冻归档存储、深度归档存储文件
@@ -245,7 +247,7 @@ def restoreAr(self, bucket, key, freezeAfter_days):
245
247
freezeAfter_days: 解冻有效时长,取值范围 1~7
246
248
"""
247
249
resource = entry (bucket , key )
248
- return self .__rs_do ('restoreAr' , resource , 'freezeAfterDays/{0}' .format (freezeAfter_days ))
250
+ return self .__rs_do (bucket , 'restoreAr' , resource , 'freezeAfterDays/{0}' .format (freezeAfter_days ))
249
251
250
252
def change_status (self , bucket , key , status , cond ):
251
253
"""修改文件的状态
@@ -263,8 +265,8 @@ def change_status(self, bucket, key, status, cond):
263
265
for k , v in cond .items ():
264
266
condstr += "{0}={1}&" .format (k , v )
265
267
condstr = urlsafe_base64_encode (condstr [:- 1 ])
266
- return self .__rs_do ('chstatus' , resource , 'status/{0}' .format (status ), 'cond' , condstr )
267
- return self .__rs_do ('chstatus' , resource , 'status/{0}' .format (status ))
268
+ return self .__rs_do (bucket , 'chstatus' , resource , 'status/{0}' .format (status ), 'cond' , condstr )
269
+ return self .__rs_do (bucket , 'chstatus' , resource , 'status/{0}' .format (status ))
268
270
269
271
def set_object_lifecycle (
270
272
self ,
@@ -303,7 +305,7 @@ def set_object_lifecycle(
303
305
cond_str = '&' .join (["{0}={1}" .format (k , v ) for k , v in cond .items ()])
304
306
options += ['cond' , urlsafe_base64_encode (cond_str )]
305
307
resource = entry (bucket , key )
306
- return self .__rs_do ('lifecycle' , resource , * options )
308
+ return self .__rs_do (bucket , 'lifecycle' , resource , * options )
307
309
308
310
def batch (self , operations ):
309
311
"""批量操作:
@@ -339,7 +341,7 @@ def buckets(self):
339
341
[ <Bucket1>, <Bucket2>, ... ]
340
342
一个ResponseInfo对象
341
343
"""
342
- return self .__rs_do ('buckets' )
344
+ return self .__uc_do ('buckets' )
343
345
344
346
def delete_after_days (self , bucket , key , days ):
345
347
"""更新文件生命周期
@@ -361,7 +363,7 @@ def delete_after_days(self, bucket, key, days):
361
363
days: 指定天数
362
364
"""
363
365
resource = entry (bucket , key )
364
- return self .__rs_do ('deleteAfterDays' , resource , days )
366
+ return self .__rs_do (bucket , 'deleteAfterDays' , resource , days )
365
367
366
368
def mkbucketv3 (self , bucket_name , region ):
367
369
"""
@@ -371,7 +373,7 @@ def mkbucketv3(self, bucket_name, region):
371
373
bucket_name: 存储空间名
372
374
region: 存储区域
373
375
"""
374
- return self .__rs_do ('mkbucketv3' , bucket_name , 'region' , region )
376
+ return self .__uc_do ('mkbucketv3' , bucket_name , 'region' , region )
375
377
376
378
def list_bucket (self , region ):
377
379
"""
@@ -416,8 +418,10 @@ def change_bucket_permission(self, bucket_name, private):
416
418
def __uc_do (self , operation , * args ):
417
419
return self .__server_do (config .get_default ('default_uc_host' ), operation , * args )
418
420
419
- def __rs_do (self , operation , * args ):
420
- return self .__server_do (config .get_default ('default_rs_host' ), operation , * args )
421
+ def __rs_do (self , bucket , operation , * args ):
422
+ ak = self .auth .get_access_key ()
423
+ rs_host = self .zone .get_rs_host (ak , bucket )
424
+ return self .__server_do (rs_host , operation , * args )
421
425
422
426
def __io_do (self , bucket , operation , home_dir , * args ):
423
427
ak = self .auth .get_access_key ()
0 commit comments