Skip to content

Commit 35118f2

Browse files
authored
Merge pull request #120 from hellohellenmao/master
增加获取文件流、范围下载功能以及修改桶能拷贝功能代码
2 parents 4be16f3 + ca473b4 commit 35118f2

File tree

1 file changed

+34
-16
lines changed

1 file changed

+34
-16
lines changed

qcloud_cos/tce_demo.py

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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

382391
if __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

Comments
 (0)