Skip to content

Commit ab42153

Browse files
Merge pull request #46 from volcengine/release_v2.8.6
v2.8.6
2 parents 0c92c01 + 9f6b908 commit ab42153

File tree

14 files changed

+1079
-103
lines changed

14 files changed

+1079
-103
lines changed

CHANGELOG.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
TOS SDK for Python 版本记录
22
===========================
3+
Version 2.8.6
4+
-------------
5+
- 新增:支持桶清单相关接口
6+
- 新增:支持 标量精确查询 和 向量混合查询接口
7+
- 修改:配置/查询镜像回源接口 支持私有桶、MirrorHeader.Set
8+
- 修改:跨区域复制 PutBucketReplication/GetBucketReplication 支持 Tag 过滤条件和跨账号场景授予目标桶 Ower 的写入对象的 ACL 权限
9+
310
Version 2.8.5
411
-------------
512
- 新增:支持SetObjectExpires接口

tests/common.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,15 @@ def __init__(self, *args, **kwargs):
7676
self.sseAlg = "AES256"
7777
self.callback_url = os.getenv('CallbackUrl')
7878
self.cloud_function = os.getenv('CloudFunction')
79-
79+
self.control_endpoint = os.getenv('ControlEndpoint')
8080
def setUp(self):
81-
self.client = TosClientV2(self.ak, self.sk, self.endpoint, self.region, enable_crc=True, max_retry_count=2)
81+
self.client = TosClientV2(self.ak, self.sk, self.endpoint, self.region, enable_crc=True, max_retry_count=2,
82+
control_endpoint=self.control_endpoint)
8283
self.version_client = TestClient2(self.ak, self.sk, self.endpoint, self.region,
83-
max_retry_count=2)
84+
max_retry_count=2,control_endpoint=self.control_endpoint)
8485
self.client2 = TosClientV2(endpoint=self.endpoint2, region=self.region2, enable_crc=True, max_retry_count=2,
85-
credentials_provider=StaticCredentialsProvider(self.ak, self.sk))
86+
credentials_provider=StaticCredentialsProvider(self.ak, self.sk),
87+
control_endpoint=self.control_endpoint)
8688

8789
def tearDown(self):
8890
for file in self.temp_files:

tests/test_control.py

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# # -*- coding: utf-8 -*-
2+
# from tests.common import TosTestBase
3+
#
4+
# from tos.enum import (QueryOrderType, AggregationOperationType, SemanticQueryType,
5+
# QueryOperationType)
6+
#
7+
# from tos.models2 import AggregationRequest, QueryRequest
8+
#
9+
#
10+
# class TestObject(TosTestBase):
11+
#
12+
# def test_simple_query(self):
13+
# # base simple query
14+
# resp = self.client.simple_query(account_id=self.account_id,
15+
# dataset_name="windlike-2")
16+
# self.assertEqual(resp.status_code, 200)
17+
# self.assertEqual(100, len(resp.files))
18+
#
19+
# # with sort,order,max_result
20+
# resp = self.client.simple_query(account_id=self.account_id,
21+
# dataset_name="windlike-2",
22+
# sort="FileModifiedTime",
23+
# order=QueryOrderType.ASC,
24+
# max_results=10)
25+
# self.assertEqual(resp.status_code, 200)
26+
# self.assertEqual(10, len(resp.files))
27+
# file_name = resp.files[0].file_name
28+
# # with next token
29+
# resp = self.client.simple_query(account_id=self.account_id,
30+
# dataset_name="windlike-2",
31+
# sort="FileModifiedTime",
32+
# order=QueryOrderType.ASC,
33+
# max_results=10,next_token=resp.next_token)
34+
# self.assertEqual(10, len(resp.files))
35+
# self.assertNotEquals(file_name , resp.files[0].file_name)
36+
# # with fields
37+
# resp = self.client.simple_query(account_id=self.account_id,
38+
# dataset_name="windlike-2",
39+
# sort="FileModifiedTime",
40+
# order=QueryOrderType.ASC,
41+
# max_results=10,with_fields=["TOSBucketName","FileName","ETag","TOSStorageClass",
42+
# "Size","ContentType","TOSCRC64","ServerSideEncryption",
43+
# "ServerSideEncryptionCustomerAlgorithm","TOSTaggingCount",
44+
# "TOSTagging","TOSUserMeta","TOSVersionId","TOSObjectType",
45+
# "TOSReplicationStatus","TOSIsDeleteMarker","AccountId"],
46+
# query=QueryRequest(
47+
# operation=QueryOperationType.AND,
48+
# sub_queries=[QueryRequest(operation=QueryOperationType.PREFIX,
49+
# field="FileName", value="test-py-sdk")])
50+
# )
51+
# self.assertEqual(1, len(resp.files))
52+
# self.assertEqual(True,resp.files[0].etag is not None)
53+
# # with query
54+
# resp = self.client.simple_query(account_id=self.account_id,
55+
# dataset_name="windlike-2",
56+
# sort="FileModifiedTime",
57+
# order=QueryOrderType.ASC,
58+
# max_results=10, with_fields=["FileName"],
59+
# query=QueryRequest(
60+
# operation=QueryOperationType.AND,
61+
# sub_queries=[QueryRequest(operation=QueryOperationType.PREFIX,
62+
# field="FileName", value="1a5")])
63+
# )
64+
# self.assertEqual(0, len(resp.files))
65+
#
66+
#
67+
# # with aggregations
68+
#
69+
# resp = self.client.simple_query(account_id=self.account_id,
70+
# dataset_name="windlike-2",
71+
# aggregations=[AggregationRequest("Size",AggregationOperationType.MAX),
72+
# AggregationRequest("TOSStorageClass", AggregationOperationType.GROUP),
73+
# AggregationRequest("ContentType", AggregationOperationType.GROUP)
74+
# ])
75+
#
76+
# self.assertEqual(resp.status_code, 200)
77+
#
78+
# def test_semantic_query(self):
79+
# # 文字检索
80+
# resp = self.client.semantic_query(account_id=self.account_id,
81+
# dataset_name="img-test-only-incr",
82+
# semantic_query_type=SemanticQueryType.SemanticQueryTypeText,
83+
# max_results=10,
84+
# semantic_query_input="猫",
85+
# query=QueryRequest(
86+
# operation=QueryOperationType.AND,
87+
# sub_queries=[QueryRequest(operation=QueryOperationType.PREFIX,
88+
# field="FileName",value="1a5")]),
89+
# with_fields=["FileName"],
90+
# )
91+
#
92+
# self.assertEqual(resp.status_code, 200)

0 commit comments

Comments
 (0)