@@ -21,7 +21,7 @@ def __init__(self, region, appid, secret_id, secret_key, end_point,
2121 self .cos_config = CosConfig (
2222 Secret_id = self .secret_id ,
2323 Secret_key = self .secret_key ,
24- Endpoint = self .end_point % region ,
24+ Endpoint = self .end_point ,
2525 Scheme = self .scheme )
2626 self .client = CosS3Client (self .cos_config )
2727
@@ -246,25 +246,15 @@ def delete_objects_with_quiet(self, bucket_name, obj_list, quiet):
246246 Bucket = bucket_name + '-' + self .appid , Delete = delete )
247247 return resp
248248
249- def copy_object_in_same_bucket (self ):
249+ def copy_object_in_same_bucket (self , bucket_name , obj_name ):
250250 # 桶内copy对象
251- bucket_name = "mainbkt"
252- object_key = "obj_copy"
253- copy_source = {
254- "Appid" : self .appid ,
255- "Bucket" : "mainbkt" ,
256- "Key" : "obj" ,
257- "Region" : self .region
258- }
259- resp = self .client .copy_object (
260- Bucket = bucket_name + '-' + self .appid ,
261- Key = object_key ,
262- CopySource = copy_source ,
263- CopyStatus = "Copy" )
251+ bucket_with_appid = bucket_name + '-' + self .appid
252+ copy_source = {'Bucket' : bucket_with_appid , 'Key' : obj_name , 'Endpoint' : self .end_point }
253+ resp = self .client .copy_object (Bucket = bucket_with_appid , Key = 'test_dst' , CopySource = copy_source )
264254 return resp
265255
266256 def copy_object_in_different_bucket (self ):
267- # 桶内copy对象
257+ # 不同桶内copy对象
268258 bucket_name = "wook-gao"
269259 object_key = "obj_copy"
270260 copy_source = {
@@ -378,6 +368,25 @@ def upload_file(self, bucket_name, obj_name, file_path):
378368 LocalFilePath = file_path )
379369 return resp
380370
371+ def get_file_flow (self , bucket_name , obj_name ):
372+ # 获取文件流
373+ response = self .client .get_object (
374+ Bucket = bucket_name + '-' + self .appid ,
375+ Key = obj_name ,
376+ )
377+ fp = response ['Body' ].get_raw_stream ()
378+ print (fp .read (10 ))
379+
380+ def get_file_range (self , bucket_name , obj_name ):
381+ # 文件下载 指定下载范围
382+ response = main .client .get_object (
383+ Bucket = bucket_name + '-' + self .appid ,
384+ Key = obj_name ,
385+ Range = 'bytes=1-10'
386+ )
387+ fp = response ['Body' ].get_raw_stream ()
388+ print (fp .read ())
389+
381390
382391if __name__ == "__main__" :
383392
@@ -603,6 +612,15 @@ def upload_file(self, bucket_name, obj_name, file_path):
603612 obj_name = "upload1g.txt" ,
604613 file_path = "f:\\ test1g.txt" )
605614
615+ # 获取文件流
616+ main .get_file_flow (bucket_name = "mainbkt" , obj_name = "part100m.txt" )
617+
618+ # 文件下载 指定下载范围
619+ main .get_file_range (bucket_name = "mainbkt" , obj_name = "part100m.txt" )
620+
621+ # 桶内拷贝
622+ main .copy_object_in_same_bucket (bucket_name = "mainbkt" , obj_name = "str1m.txt" )
623+
606624 print ("Succeeded" )
607625
608626 except Exception as e :
0 commit comments