Skip to content

Commit b347730

Browse files
committed
feat(sts): 增加 STS 令牌获取可以选择 OSS 区域和是否使用 VPC 域名的参数功能
1 parent 8890840 commit b347730

17 files changed

Lines changed: 82 additions & 26 deletions

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
## [0.6.1](https://github.com/teambge/bge-python-sdk/compare/v0.6.0...v0.6.1) (2023-12-04)
2+
3+
4+
### Features
5+
6+
* **sts:** 增加 STS 令牌获取可以选择 OSS 区域和是否使用 VPC 域名的参数功能 ([f03cc7e](https://github.com/teambge/bge-python-sdk/commit/f03cc7e66f9d5fd75315c4820ae62e1c47a2e058))
7+
8+
9+
110
# [0.6.0](https://github.com/teambge/bge-python-sdk/compare/v0.5.4...v0.6.0) (2023-11-06)
211

312

bgesdk/client.py

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

bgesdk/management/commands/api/commands/aggregate_omics_data.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
class Command(BaseCommand):
2222

2323
order = 10
24-
help='聚合组学数据(目前仅支持聚合数据流中符合平台设定 JSONPath 规则的数值型数据)。'
24+
help = '聚合组学数据(目前仅支持聚合数据流中符合平台设定 JSONPath 规则的数值型数据)。'
2525

2626
def add_arguments(self, parser):
2727
parser.add_argument(

bgesdk/management/commands/api/commands/download.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
class Command(BaseCommand):
2323

2424
order = 13
25-
help='下载文件。'
25+
help = '下载文件。'
2626

2727
def add_arguments(self, parser):
2828
parser.add_argument(

bgesdk/management/commands/api/commands/get_data_items.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
class Command(BaseCommand):
2222

2323
order = 7
24-
help='请求数据项。'
24+
help = '请求数据项。'
2525

2626
def add_arguments(self, parser):
2727
parser.add_argument(

bgesdk/management/commands/api/commands/get_externals.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
class Command(BaseCommand):
2222

2323
order = 9
24-
help='获取套件外部编号对应表。'
24+
help = '获取套件外部编号对应表。'
2525

2626
def add_arguments(self, parser):
2727
parser.add_argument(

bgesdk/management/commands/api/commands/get_range_stream.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
class Command(BaseCommand):
2222

2323
order = 8
24-
help='请求数据流。'
24+
help = '请求数据流。'
2525

2626
def add_arguments(self, parser):
2727
parser.add_argument(

bgesdk/management/commands/api/commands/get_samples.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
class Command(BaseCommand):
3030

3131
order = 2
32-
help='获取样品信息。'
32+
help = '获取样品信息。'
3333

3434
def add_arguments(self, parser):
3535
parser.add_argument(
@@ -69,7 +69,7 @@ def add_arguments(self, parser):
6969
'--statuses',
7070
type=str,
7171
help='数据状态,详情见 BGE 开放平台文档 https://api.bge.genomics.cn/doc/#/ot'
72-
'hers/appendix?id=样品状态编码表'
72+
'hers/appendix?id=样品状态编码表'
7373
)
7474
parser.add_argument(
7575
'--require_files',

bgesdk/management/commands/api/commands/get_user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
class Command(BaseCommand):
2222

2323
order = 1
24-
help='获取用户信息。'
24+
help = '获取用户信息。'
2525

2626
def add_arguments(self, parser):
2727
parser.add_argument(

bgesdk/management/commands/api/commands/get_variants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
class Command(BaseCommand):
2222

2323
order = 3
24-
help='获取变异位点数据。'
24+
help = '获取变异位点数据。'
2525

2626
def add_arguments(self, parser):
2727
parser.add_argument(

0 commit comments

Comments
 (0)