Skip to content

Commit 6d98e0d

Browse files
zhuxiaolong37huiguangjun
authored andcommitted
add bucket transfer acceleration
1 parent 905c5b7 commit 6d98e0d

File tree

10 files changed

+575
-0
lines changed

10 files changed

+575
-0
lines changed

alibabacloud_oss_v2/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from .models.bucket_referer import *
3232
from .models.bucket_worm import *
3333
from .models.bucket_request_payment import *
34+
from .models.bucket_transfer_acceleration import *
3435
from .models.bucket_public_access_block import *
3536
from .models.public_access_block import *
3637
from .models.bucket_resource_group import *

alibabacloud_oss_v2/client.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1719,6 +1719,35 @@ def get_bucket_request_payment(self, request: models.GetBucketRequestPaymentRequ
17191719
"""
17201720
return operations.get_bucket_request_payment(self._client, request, **kwargs)
17211721

1722+
1723+
# bucket transfer acceleration
1724+
def put_bucket_transfer_acceleration(self, request: models.PutBucketTransferAccelerationRequest, **kwargs
1725+
) -> models.PutBucketTransferAccelerationResult:
1726+
"""
1727+
Configures transfer acceleration for a bucket. After you enable transfer acceleration for a bucket, the object access speed is accelerated for users worldwide. The transfer acceleration feature is applicable to scenarios where data needs to be transferred over long geographical distances. This feature can also be used to download or upload objects that are gigabytes or terabytes in size.
1728+
1729+
Args:
1730+
request (PutBucketTransferAccelerationRequest): Request parameters for PutBucketTransferAcceleration operation.
1731+
1732+
Returns:
1733+
PutBucketTransferAccelerationResult: Response result for PutBucketTransferAcceleration operation.
1734+
"""
1735+
return operations.put_bucket_transfer_acceleration(self._client, request, **kwargs)
1736+
1737+
1738+
def get_bucket_transfer_acceleration(self, request: models.GetBucketTransferAccelerationRequest, **kwargs
1739+
) -> models.GetBucketTransferAccelerationResult:
1740+
"""
1741+
Queries the transfer acceleration configurations of a bucket.
1742+
1743+
Args:
1744+
request (GetBucketTransferAccelerationRequest): Request parameters for GetBucketTransferAcceleration operation.
1745+
1746+
Returns:
1747+
GetBucketTransferAccelerationResult: Response result for GetBucketTransferAcceleration operation.
1748+
"""
1749+
return operations.get_bucket_transfer_acceleration(self._client, request, **kwargs)
1750+
17221751
# bucket public access block
17231752
def get_bucket_public_access_block(self, request: models.GetBucketPublicAccessBlockRequest, **kwargs
17241753
) -> models.GetBucketPublicAccessBlockResult:

alibabacloud_oss_v2/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from .bucket_referer import *
2020
from .bucket_worm import *
2121
from .bucket_request_payment import *
22+
from .bucket_transfer_acceleration import *
2223
from .bucket_public_access_block import *
2324
from .public_access_block import *
2425
from .bucket_resource_group import *
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
import datetime
2+
from typing import Optional, List, Any, Union
3+
from .. import serde
4+
5+
6+
class TransferAccelerationConfiguration(serde.Model):
7+
"""
8+
The container that stores the transfer acceleration configurations.
9+
"""
10+
11+
_attribute_map = {
12+
'enabled': {'tag': 'xml', 'rename': 'Enabled', 'type': 'bool'},
13+
}
14+
15+
_xml_map = {
16+
'name': 'TransferAccelerationConfiguration'
17+
}
18+
19+
def __init__(
20+
self,
21+
enabled: Optional[bool] = None,
22+
**kwargs: Any
23+
) -> None:
24+
"""
25+
enabled (bool, optional): Whether the transfer acceleration is enabled for this bucket.
26+
"""
27+
super().__init__(**kwargs)
28+
self.enabled = enabled
29+
30+
31+
32+
33+
class PutBucketTransferAccelerationRequest(serde.RequestModel):
34+
"""
35+
The request for the PutBucketTransferAcceleration operation.
36+
"""
37+
38+
_attribute_map = {
39+
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str', 'required': True},
40+
'transfer_acceleration_configuration': {'tag': 'input', 'position': 'body', 'rename': 'TransferAccelerationConfiguration', 'type': 'xml'},
41+
}
42+
43+
def __init__(
44+
self,
45+
bucket: str = None,
46+
transfer_acceleration_configuration: Optional[TransferAccelerationConfiguration] = None,
47+
**kwargs: Any
48+
) -> None:
49+
"""
50+
bucket (str, required): The name of the bucket.
51+
transfer_acceleration_configuration (TransferAccelerationConfiguration, optional): The container of the request body.
52+
"""
53+
super().__init__(**kwargs)
54+
self.bucket = bucket
55+
self.transfer_acceleration_configuration = transfer_acceleration_configuration
56+
57+
58+
class PutBucketTransferAccelerationResult(serde.ResultModel):
59+
"""
60+
The request for the PutBucketTransferAcceleration operation.
61+
"""
62+
63+
class GetBucketTransferAccelerationRequest(serde.RequestModel):
64+
"""
65+
The request for the GetBucketTransferAcceleration operation.
66+
"""
67+
68+
_attribute_map = {
69+
'bucket': {'tag': 'input', 'position': 'host', 'rename': 'bucket', 'type': 'str', 'required': True},
70+
}
71+
72+
def __init__(
73+
self,
74+
bucket: str = None,
75+
**kwargs: Any
76+
) -> None:
77+
"""
78+
bucket (str, required): The name of the bucket.
79+
"""
80+
super().__init__(**kwargs)
81+
self.bucket = bucket
82+
83+
84+
class GetBucketTransferAccelerationResult(serde.ResultModel):
85+
"""
86+
The request for the GetBucketTransferAcceleration operation.
87+
"""
88+
89+
_attribute_map = {
90+
'transfer_acceleration_configuration': {'tag': 'output', 'position': 'body', 'rename': 'TransferAccelerationConfiguration', 'type': 'TransferAccelerationConfiguration,xml'},
91+
}
92+
93+
_dependency_map = {
94+
'TransferAccelerationConfiguration': {'new': lambda: TransferAccelerationConfiguration()},
95+
}
96+
97+
def __init__(
98+
self,
99+
transfer_acceleration_configuration: Optional[TransferAccelerationConfiguration] = None,
100+
**kwargs: Any
101+
) -> None:
102+
"""
103+
transfer_acceleration_configuration (TransferAccelerationConfiguration, optional): The container that stores the transfer acceleration configurations.
104+
"""
105+
super().__init__(**kwargs)
106+
self.transfer_acceleration_configuration = transfer_acceleration_configuration

alibabacloud_oss_v2/operations/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from .bucket_referer import *
2020
from .bucket_worm import *
2121
from .bucket_request_payment import *
22+
from .bucket_transfer_acceleration import *
2223
from .bucket_public_access_block import *
2324
from .public_access_block import *
2425
from .bucket_resource_group import *
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# pylint: disable=line-too-long
2+
3+
from ..types import OperationInput, CaseInsensitiveDict
4+
from .. import serde
5+
from .. import serde_utils
6+
from .. import models
7+
from .._client import _SyncClientImpl
8+
9+
10+
def put_bucket_transfer_acceleration(client: _SyncClientImpl, request: models.PutBucketTransferAccelerationRequest, **kwargs) -> models.PutBucketTransferAccelerationResult:
11+
"""
12+
put_bucket_transfer_acceleration synchronously
13+
14+
Args:
15+
client (_SyncClientImpl): A agent that sends the request.
16+
request (PutBucketTransferAccelerationRequest): The request for the PutBucketTransferAcceleration operation.
17+
18+
Returns:
19+
PutBucketTransferAccelerationResult: The result for the PutBucketTransferAcceleration operation.
20+
"""
21+
22+
op_input = serde.serialize_input(
23+
request=request,
24+
op_input=OperationInput(
25+
op_name='PutBucketTransferAcceleration',
26+
method='PUT',
27+
headers=CaseInsensitiveDict({
28+
'Content-Type': 'application/xml',
29+
}),
30+
parameters={
31+
'transferAcceleration': '',
32+
},
33+
bucket=request.bucket,
34+
op_metadata={'sub-resource': ['transferAcceleration']},
35+
),
36+
custom_serializer=[
37+
serde_utils.add_content_md5
38+
]
39+
)
40+
41+
op_output = client.invoke_operation(op_input, **kwargs)
42+
43+
return serde.deserialize_output(
44+
result=models.PutBucketTransferAccelerationResult(),
45+
op_output=op_output,
46+
custom_deserializer=[
47+
serde.deserialize_output_xmlbody
48+
],
49+
)
50+
51+
def get_bucket_transfer_acceleration(client: _SyncClientImpl, request: models.GetBucketTransferAccelerationRequest, **kwargs) -> models.GetBucketTransferAccelerationResult:
52+
"""
53+
get_bucket_transfer_acceleration synchronously
54+
55+
Args:
56+
client (_SyncClientImpl): A agent that sends the request.
57+
request (GetBucketTransferAccelerationRequest): The request for the GetBucketTransferAcceleration operation.
58+
59+
Returns:
60+
GetBucketTransferAccelerationResult: The result for the GetBucketTransferAcceleration operation.
61+
"""
62+
63+
op_input = serde.serialize_input(
64+
request=request,
65+
op_input=OperationInput(
66+
op_name='GetBucketTransferAcceleration',
67+
method='GET',
68+
headers=CaseInsensitiveDict({
69+
'Content-Type': 'application/xml',
70+
}),
71+
parameters={
72+
'transferAcceleration': '',
73+
},
74+
bucket=request.bucket,
75+
op_metadata={'sub-resource': ['transferAcceleration']},
76+
),
77+
custom_serializer=[
78+
serde_utils.add_content_md5
79+
]
80+
)
81+
82+
op_output = client.invoke_operation(op_input, **kwargs)
83+
84+
return serde.deserialize_output(
85+
result=models.GetBucketTransferAccelerationResult(),
86+
op_output=op_output,
87+
custom_deserializer=[
88+
serde.deserialize_output_xmlbody
89+
],
90+
)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import argparse
2+
import alibabacloud_oss_v2 as oss
3+
4+
parser = argparse.ArgumentParser(description="get bucket transfer acceleration sample")
5+
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
6+
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
7+
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
8+
9+
10+
def main():
11+
12+
args = parser.parse_args()
13+
14+
# Loading credentials values from the environment variables
15+
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
16+
17+
# Using the SDK's default configuration
18+
cfg = oss.config.load_default()
19+
cfg.credentials_provider = credentials_provider
20+
cfg.region = args.region
21+
if args.endpoint is not None:
22+
cfg.endpoint = args.endpoint
23+
24+
client = oss.Client(cfg)
25+
26+
result = client.get_bucket_transfer_acceleration(oss.GetBucketTransferAccelerationRequest(
27+
bucket=args.bucket,
28+
))
29+
30+
print(f'status code: {result.status_code},'
31+
f' request id: {result.request_id},'
32+
f' enabled: {result.transfer_acceleration_configuration.enabled},'
33+
)
34+
35+
36+
if __name__ == "__main__":
37+
main()
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import argparse
2+
import alibabacloud_oss_v2 as oss
3+
4+
parser = argparse.ArgumentParser(description="put bucket transfer acceleration sample")
5+
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
6+
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
7+
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
8+
parser.add_argument('--enabled', help='Whether the transfer acceleration is enabled for this bucket.', default=False)
9+
10+
11+
def main():
12+
13+
args = parser.parse_args()
14+
15+
# Loading credentials values from the environment variables
16+
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
17+
18+
# Using the SDK's default configuration
19+
cfg = oss.config.load_default()
20+
cfg.credentials_provider = credentials_provider
21+
cfg.region = args.region
22+
if args.endpoint is not None:
23+
cfg.endpoint = args.endpoint
24+
25+
client = oss.Client(cfg)
26+
27+
result = client.put_bucket_transfer_acceleration(oss.PutBucketTransferAccelerationRequest(
28+
bucket=args.bucket,
29+
transfer_acceleration_configuration=oss.TransferAccelerationConfiguration(
30+
enabled=args.enabled,
31+
),
32+
))
33+
34+
print(f'status code: {result.status_code},'
35+
f' request id: {result.request_id},'
36+
)
37+
38+
39+
if __name__ == "__main__":
40+
main()

0 commit comments

Comments
 (0)