杨锴
2024-10-09 e987bc09f955e01c2835f01e3a6af20723a579f9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
// Copyright 2019 Huawei Technologies Co.,Ltd.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use
// this file except in compliance with the License.  You may obtain a copy of the
// License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
// CONDITIONS OF ANY KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations under the License.
 
#ifndef OBSCreateBucketModel_h
#define OBSCreateBucketModel_h
#import "OBSBaseModel.h"
#import "OBSBaseNetworking.h"
#import "OBSClient.h"
#import "OBSServiceBaseModel.h"
#import "OBSServiceConstDefinition.h"
#import "OBSServiceCommonEntities.h"
#import "OBSServiceCredentialProvider.h"
 
    //request
#pragma mark - request entity
 
 
#pragma mark - request
 
 
 
/**
 创建桶的
 */
@protocol OBSCreateBucketProtocol
@required
 
/**
 桶名
 */
@property (nonatomic, strong, nonnull) NSString *bucketName;
@end
 
 
/**
 创建桶request  
 */
@interface OBSCreateBucketRequest: OBSBaseRequest<OBSCreateBucketProtocol>
 
/**
 //区域配置
 */
@property (nonatomic, strong, nullable) OBSBucketConfiguration *configuration;
 
/**
 ACL设置
 
 OBSACLPolicyNULL0,
 OBSACLPolicyPrivate,
 OBSACLPolicyPublicRead,
 OBSACLPolicyPublicReadWrite,
 OBSACLPolicyAuthenticatedRead,
 OBSACLPolicyBucketOwnerRead,
 OBSACLPolicyBucketOwnerFullControl,
 OBSACLPolicyLogDeliveryWrite,
 */
@property (nonatomic, assign) OBSACLPolicy bucketACLPolicy;
 
/**
 桶存储类型
 
 OBSStorageClassNULL0,
 OBSStorageClassStandard,
 OBSStorageClassStandardIA,
 OBSStorageClassGlacier,
 */
@property (nonatomic, assign) OBSStorageClass defaultStorageClass;
@property (nonatomic, strong, nonnull) NSString *bucketName;
 
//**********************自研协议*******************************
/**
 授权给指定domain下的所有用户有READ权限。
 */
@property (nonatomic, strong, nonnull) NSString *grantRead;
/**
 授权给指定domain下的所有用户有WRITE权限。
 */
@property (nonatomic, strong, nonnull) NSString *grantWrite;
/**
 授权给指定domain下的所有用户有READ_ACP权限。
 */
@property (nonatomic, strong, nonnull) NSString *grantReadAcp;
/**
 授权给指定domain下的所有用户有WRITE_ACP权限,允许修改桶的ACL信息。
 */
@property (nonatomic, strong, nonnull) NSString *grantWriteAcp;
/**
 授权给指定domain下的所有用户有FULL_CONTROL权限。
 */
@property (nonatomic, strong, nonnull) NSString *grantfullControl;
/**
 授权给指定domain下的所有用户有READ权限,并且在默认情况下,该READ权限将传递给桶内所有对象。
 */
@property (nonatomic, strong, nonnull) NSString *grantreadDelivered;
/**
 授权给指定domain下的所有用户有FULL_CONTROL权限,并且在默认情况下,该FULL_CONTROL权限将传递给桶内所有对象。
 */
@property (nonatomic, strong, nonnull) NSString *grantfullControlDelivered;
 
 
/**
 初始化创建桶的request对象
 
 @param bucketName 桶名
 @return request实例
 */
-(instancetype)initWithBucketName:(NSString*) bucketName;
@end
 
#pragma mark - networking request
@interface OBSCreateBucketRequestNetworking : OBSServiceNetworkingCommandRequest
@end
 
    //response
#pragma mark - response
 
/**
 创建桶response
 */
@interface OBSCreateBucketResponse: OBSServiceResponse
 
/**
 桶区域位置
 */
@property (nonatomic, strong, nullable) NSString *location;
@end
 
 
#pragma mark - client method
@interface OBSClient(createBucket)
 
/**
 创建桶
 
 @param request 创建桶的request对象
 @param completionHandler 创建桶的回调
 @return task对象
 */
- (OBSBFTask*)createBucket:(__kindof OBSBaseRequest<OBSCreateBucketProtocol>*)request
         completionHandler:(void (^)(OBSCreateBucketResponse  * response, NSError * error))completionHandler;
@end
 
 
#endif  /* OBSServiceBaseModel_h */