@@ -633,7 +633,7 @@ def get_gene_abundance(self, biosample_id, catalog, data_type, ids=None,
633633 result ['result' ] = [models .Model (item ) for item in result ['result' ]]
634634 return result
635635
636- def get_upload_token (self , ** kwargs ):
636+ def get_upload_token (self , region_id = None , internal = False , ** kwargs ):
637637 """获取文件上传授权
638638
639639 获取的授权仅包括当前目录(不含子目录)下的文件读、写权限;
@@ -644,15 +644,21 @@ def get_upload_token(self, **kwargs):
644644 timeout = self .timeout
645645 verbose = self .verbose
646646 max_retries = self .max_retries
647+ data = {}
648+ data .update (kwargs )
649+ data .update ({
650+ 'region_id' : region_id ,
651+ 'internal' : internal ,
652+ })
647653 request = HTTPRequest (
648654 self .endpoint , max_retries = max_retries , verbose = verbose )
649655 request .set_authorization (self .token_type , self .access_token )
650- result = request .post ('/sts/token' , data = kwargs , timeout = timeout )
656+ result = request .post ('/sts/token' , data = data , timeout = timeout )
651657 return models .Model (result )
652658
653659 def upload (self , filename , file_or_string , part_size = None ,
654660 multipart_threshold = None , multipart_num_threads = None ,
655- cmk_id = None ):
661+ cmk_id = None , region_id = None , internal = False ):
656662 """上传文件
657663
658664 Args:
@@ -663,11 +669,16 @@ def upload(self, filename, file_or_string, part_size=None,
663669 multipart_num_threads: 分片上传缺省线程数, 默认 4;
664670 cmk_id (str): 阿里云 KMS 服务用户主密钥 ID,加密上传时提供 CMK ID 即可;
665671 提供 cmk_id 后不支持分片上传;
672+ region_id(str): 阿里云 OSS 区域编号,默认 oss-cn-shenzhen;
673+ internal(bool): 是否使用内部 VPN 域名,默认 False;
666674
667675 Returns:
668676 object_name: 文件的 OSS 对象名;
669677 """
670- token = self .get_upload_token ()
678+ token = self .get_upload_token (
679+ region_id = region_id ,
680+ internal = internal
681+ )
671682 return self ._upload (
672683 token ,
673684 filename ,
@@ -680,7 +691,7 @@ def upload(self, filename, file_or_string, part_size=None,
680691
681692 def batch_upload (self , files , part_size = None ,
682693 multipart_threshold = None , multipart_num_threads = None ,
683- cmk_id = None ):
694+ cmk_id = None , region_id = None , internal = False ):
684695 """批量上传文件
685696
686697 Args:
@@ -689,6 +700,8 @@ def batch_upload(self, files, part_size=None,
689700 multipart_threshold(num): 上传数据大于或等于该值时分片上传, 默认 100M;
690701 multipart_num_threads: 分片上传缺省线程数, 默认 4;
691702 cmk_id (str): 阿里云 KMS 服务用户主密钥 ID,加密上传时提供 CMK ID 即可;
703+ region_id(str): 阿里云 OSS 区域编号,默认 oss-cn-shenzhen;
704+ internal(bool): 是否使用内部 VPN 域名,默认 False;
692705
693706 Returns:
694707 object_name: 文件的 OSS 对象名;
@@ -698,7 +711,10 @@ def batch_upload(self, files, part_size=None,
698711 object_names = []
699712 if isinstance (files , (list , tuple )):
700713 files = [files ]
701- token = self .get_upload_token ()
714+ token = self .get_upload_token (
715+ region_id = region_id ,
716+ internal = internal
717+ )
702718 for file_obj in files :
703719 if not isinstance (file_obj , FileItem ):
704720 continue
@@ -721,7 +737,7 @@ def batch_upload(self, files, part_size=None,
721737
722738 def upload_dir (self , dirpath , part_size = None ,
723739 multipart_threshold = None , multipart_num_threads = None ,
724- cmk_id = None ):
740+ cmk_id = None , region_id = None , internal = False ):
725741 """上传目录下的文件(不递归上传子文件夹中文件)
726742
727743 仅上传目录中的文件,软链接、符号链接、文件夹均不会上传至平台。
@@ -736,7 +752,10 @@ def upload_dir(self, dirpath, part_size=None,
736752 Returns:
737753 object_names: 上传的文件 OSS 对象名列表;
738754 """
739- token = self .get_upload_token ()
755+ token = self .get_upload_token (
756+ region_id = region_id ,
757+ internal = internal
758+ )
740759 object_names = []
741760 for filename in os .listdir (dirpath ):
742761 filepath = join (dirpath , filename )
0 commit comments