@@ -553,7 +553,7 @@ def create_multipart_upload(self, Bucket, Key, **kwargs):
553553 data = xml_to_dict (rt .text )
554554 return data
555555
556- def upload_part (self , Bucket , Key , Body , PartNumber , UploadId , ** kwargs ):
556+ def upload_part (self , Bucket , Key , Body , PartNumber , UploadId , EnableMD5 = False , ** kwargs ):
557557 """上传分块,单个大小不得超过5GB
558558
559559 :param Bucket(string): 存储桶名称.
@@ -562,6 +562,7 @@ def upload_part(self, Bucket, Key, Body, PartNumber, UploadId, **kwargs):
562562 :param PartNumber(int): 上传分块的编号.
563563 :param UploadId(string): 分块上传创建的UploadId.
564564 :param kwargs(dict): 设置请求headers.
565+ :param EnableMD5(bool): 是否需要SDK计算Content-MD5,打开此开关会增加上传耗时.
565566 :return(dict): 上传成功返回的结果,包含单个分块ETag等信息.
566567
567568 .. code-block:: python
@@ -585,6 +586,10 @@ def upload_part(self, Bucket, Key, Body, PartNumber, UploadId, **kwargs):
585586 url = url ,
586587 headers = headers ))
587588 Body = deal_with_empty_file_stream (Body )
589+ if EnableMD5 :
590+ md5_str = get_content_md5 (Body )
591+ if md5_str :
592+ headers ['Content-MD5' ] = md5_str
588593 rt = self .send_request (
589594 method = 'PUT' ,
590595 url = url ,
0 commit comments