// 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 OBSServiceDefine_h #define OBSServiceDefine_h #import "OBSBaseConstDefinition.h" #define OBSCORSHTTPGET @"GET" #define OBSCORSHTTPPUT @"PUT" #define OBSCORSHTTPHEAD @"HEAD" #define OBSCORSHTTPPOST @"POST" #define OBSCORSHTTPDELETE @"DELETE" // canonical headedrs key static NSString *const OBSCanonicalPrefix =@"x-amz-"; static NSString *const OBSCanonicalMetaPrefix =@"x-obs-meta-"; static NSString *const OBSV2MetaPrefix =@"x-amz-meta-"; static NSString *const OBSCanonicalDateKey =@"x-amz-date"; static NSString *const OBSCanonicalContentSha256Key =@"x-amz-content-sha256"; static NSString *const OBSCanonicalRequestIDKey =@"x-amz-request-id"; static NSString *const OBSSTSTokenHeaderKey =@"x-amz-security-token"; static NSString *const OBSServiceName =@"s3"; static NSString *const OBSCanonicalPrefix_OBS =@"x-obs-"; static NSString *const OBSCanonicalMetaPrefix_OBS =@"x-obs-meta-"; static NSString *const OBSCanonicalDateKey_OBS =@"x-obs-date"; static NSString *const OBSCanonicalContentSha256Key_OBS =@"x-obs-content-sha256"; static NSString *const OBSCanonicalRequestIDKey_OBS =@"x-obs-request-id"; static NSString *const OBSSTSTokenHeaderKey_OBS =@"x-obs-security-token"; static NSString *const OBSServiceName_OBS =@"s3"; static NSString *const OBSEncryptionKMSKey =@"aws:kms"; static NSString *const OBSMetaDataDictKey =@"metaDataDict"; static NSString *const OBSDefaultRegion =@"china"; static NSString *const OBSSigV4Marker =@"AWS4"; static NSString *const OBSSigV4Algorithm =@"AWS4-HMAC-SHA256"; static NSString *const OBSSigV4Terminator =@"aws4_request"; static NSString *const OBSHeaderContentMD5Key =@"Content-MD5"; static NSString *const OBSSubResourceACLKey =@"acl"; static NSString *const OBSSubResourceLifecycleKey =@"lifecycle"; static NSString *const OBSSubResourceLocationKey =@"location"; static NSString *const OBSSubResourceLoggingKey =@"logging"; static NSString *const OBSSubResourceNotificationKey =@"notification"; static NSString *const OBSSubResourcePartNumberKey =@"partNumber"; static NSString *const OBSSubResourcePolicyKey =@"policy"; static NSString *const OBSSubResourceUploadIDKey =@"uploadId"; static NSString *const OBSSubResourceUploadsKey =@"uploads"; static NSString *const OBSSubResourceAppendKey =@"append"; static NSString *const OBSSubResourcePositionKey =@"position"; static NSString *const OBSSubResourceVersionIDKey =@"versionId"; static NSString *const OBSSubResourceImageProcessKey =@"x-image-process"; static NSString *const OBSSubResourceVersioningKey =@"versioning"; static NSString *const OBSSubResourceVersionsKey =@"versions"; static NSString *const OBSSubResourceWebsiteKey =@"website"; static NSString *const OBSSubResourceQuotaKey =@"quota"; static NSString *const OBSSubResourceStoragePolicyKey =@"storagePolicy"; static NSString *const OBSSubResourceStoragePolicyKey_OBS =@"storageClass"; static NSString *const OBSSubResourceReplicateBucketKey =@"replication"; static NSString *const OBSSubResourceStorageInfoKey =@"storageinfo"; static NSString *const OBSSubResourceCORSKey =@"cors"; static NSString *const OBSSubResourceDeleteKey =@"delete"; static NSString *const OBSSubResourceRestoreKey =@"restore"; static NSString *const OBSSubResourceResponseContentTypeKey =@"response-content-type"; static NSString *const OBSSubResourceResponseContentLanguageKey=@"response-content-language"; static NSString *const OBSSubResourceResponseExpiresKey =@"response-expires"; static NSString *const OBSSubResourceResponseCacheControlKey =@"response-cache-control"; static NSString *const OBSSubResourceResponseContentDispositionKey=@"response-content-disposition"; static NSString *const OBSSubResourceResponseContentEncodingKey=@"response-content-encoding"; static NSString *const OBSSubResourceTaggingKey =@"tagging"; static NSString *const OBSUserAttributeKey =@"xsi:type"; static NSString *const OBSUserURIKey =@"URI"; static NSString *const OBSUserAuthenticatedUsersURI =@"http://acs.amazonaws.com/groups/global/AuthenticatedUsers"; static NSString *const OBSUserAllUsersURI =@"http://acs.amazonaws.com/groups/global/AllUsers"; static NSString *const OBSUserLogDeliveryURI =@"http://acs.amazonaws.com/groups/s3/LogDelivery"; #pragma mark -Enum #pragma mark -Enum /** * OBSACLPolicy枚举 * * OBS 预定义的权限控制策略 * */ typedef NS_ENUM(NSInteger, OBSACLPolicy){ /** * 默认权限 */ OBSACLPolicyNULL0, /** * 桶或对象的所有者拥有完全控制的权限,其他任何人都没有访问权限(自研/旧版本) */ OBSACLPolicyPrivate, /** * 桶或对象的所有者拥有完全控制的权限,其他所有用户包括匿名用户拥有读的权限(自研/旧版本) */ OBSACLPolicyPublicRead, /** * 桶或对象的所有者拥有完全控制的权限,其他所有用户包括匿名用户拥有读和写的权限(自研/旧版本) */ OBSACLPolicyPublicReadWrite, /** * 桶或对象的所有者拥有完全控制的权限,其他OBS授权用户拥有读权限 */ OBSACLPolicyAuthenticatedRead, /** * 对象的所有者拥有完全控制的权限,桶的所有者拥有只读的权限 */ OBSACLPolicyBucketOwnerRead, /** * 对象的所有者拥有完全控制的权限,桶的所有者拥有完全控制的权限 */ OBSACLPolicyBucketOwnerFullControl, /** * 日志投递用户组拥有对桶的写权限以及读ACP的权限 */ OBSACLPolicyLogDeliveryWrite, /** * 设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据,可以获取该桶内对象的内容和元数据。不能应用在对象上。(自研协议) */ OBSACLPolicyPublicReadDelivered, /** * 设在桶上,所有人可以获取该桶内对象列表、桶内多段任务、桶的元数据、上传对象删除对象、初始化段任务、上传段、合并段、拷贝段、取消多段上传任务,可以获取该桶内对象的内容和元数据。 不能应用在对象上。(自研协议) */ OBSACLPolicyPublicReadWriteDelivered, }; /** * OBSACL枚举 * * 支持的桶或对象权限 * */ typedef NS_ENUM(NSInteger, OBSACL){ /** * 默认 */ OBSACLNULL0, /** * 若有桶的读权限,则可以获取该桶内对象列表和桶的元数据。若有对象的读权限,则可以获取该对象内容和元数据 */ OBSACLRead, /** * 若有桶的写权限,则可以上传、覆盖和删除该桶内任何对象。此权限在对象上不适用 */ OBSACLWrite, /** * 若有读ACP的权限,则可以获取对应的桶或对象的权限控制列 表(ACL)。桶或对象的所有者永远拥有读对应桶或对象ACP的权限 */ OBSACLRead_ACP, /** * 若有写ACP的权限,则可以更新对应桶或对象的权限控制列表 (ACL)。桶或对象的所有者永远拥有写对应桶或对象的ACP的权限。 拥有了写ACP的权限,由于可以更改权限控制策略,实际上意味着拥有了完全访问的权限 */ OBSACLWrite_ACP, /** * 若有桶的完全控制权限意味着拥有READ、WRITE、 READ_ACP WRITE_ACP的权限。若有对象的完全控制权限意味着拥有READ、READ_ACP和 WRITE_ACP的权限。READ_ONLY的用户不受此限制 */ OBSACLFull_Control, /** * 对象的读权限,则可以获取该对象内容和元数据 */ OBSACLRead_Object, /** * 对象的完全控制权限意味着拥有READ、READ_ACP和 WRITE_ACP的权限。READ_ONLY的用户不受此限制 */ OBSACLFull_Control_Object, }; /** * OBSACLUserType * * 用户类型 * */ typedef NS_ENUM(NSInteger, OBSACLUserType){ /** * 默认组 */ OBSACLUserTypeNULL0, /** * 授予OBS用户 */ OBSACLUserTypeCanonicalUser, /** * 授予注册用户组 */ OBSACLUserTypeAuthenticatedUsers, /** * 授予匿名用户 */ OBSACLUserTypeAllUsers, /** * 日志投递用户组 */ OBSACLUserTypeLogDelivery, }; /** * OBSStorageClass * * 桶的存储类型 * */ typedef NS_ENUM(NSInteger, OBSStorageClass){ /** * 默认存储类型 */ OBSStorageClassNULL0, /** * 标准存储 */ OBSStorageClassStandard, /** * 低频访问存储 */ OBSStorageClassStandardIA, /** * 归档存储 */ OBSStorageClassGlacier, }; typedef NS_ENUM(NSInteger, OBSReplicateStatus){ /** * 默认 */ OBSReplicateStatusNULL0, /** * enable状态 */ OBSReplicateStatusEnable, /** * disable状态 */ OBSReplicateStatusDisable, }; /** * OBSVersioningStatus * * 多版本状态 * */ typedef NS_ENUM(NSInteger, OBSVersioningStatus){ /** * 默认配置 */ OBSVersioningStatusNULL0, /** * 开启 */ OBSVersioningStatusEnabled, /** * 关闭 */ OBSVersioningStatusSuspended, }; /** * OBSLifecycleStatus * * 桶生命周期状态 * */ typedef NS_ENUM(NSInteger, OBSLifecycleStatus){ /** * 默认配置 */ OBSLifecycleStatusNULL0, /** * 开启 */ OBSLifecycleStatusEnabled, /** * 关闭 */ OBSLifecycleStatusSuspended, }; /** * OBSPolicyEffect * * 策略的响应状态 * */ typedef NS_ENUM(NSInteger, OBSPolicyEffect){ /** * 默认 */ OBSPolicyEffectNULL0, /** * 允许 */ OBSPolicyEffectAllow, /** * 拒绝 */ OBSPolicyEffectDeny, }; /** * OBSMetaDirective * * 此参数用来指定新对象的元数据是从源对象中复制,还是用请求中的元数据替换 * */ typedef NS_ENUM(NSInteger, OBSMetaDirective){ /** * 默认 */ OBSMetaDirectiveNULL0, /** * 复制 */ OBSMetaDirectiveCopy, /** * 替换 */ OBSMetaDirectiveReplace, }; /** * OBSRestoreTier * * 归档取回方式 * */ typedef NS_ENUM(NSInteger, OBSRestoreTier){ /** * 默认 */ OBSRestoreTierNULL0, /** * 表示标准取回对象,取回耗时3~5 h */ OBSRestoreTierStandard, /** * 表示快速取回对 象,取回耗时1~5 min, */ OBSRestoreTierExpedited, /** * OBSRestoreTierBulk */ OBSRestoreTierBulk, }; /** * OBSDomainMode * * 域名访问方式 * */ typedef NS_ENUM(NSInteger, OBSDomainMode){ /** * 默认域名访问方式 */ OBSDomainModeNULL0, /** * 自定义域名访问 */ OBSDomainModeCustom, }; #define OBSPolicyActionAbortMultipartUpload @"s3:AbortMultipartUpload" #define OBSPolicyActionDeleteObject @"s3:DeleteObject" #define OBSPolicyActionDeleteObjectTagging @"s3:DeleteObjectTagging" #define OBSPolicyActionDeleteObjectVersion @"s3:DeleteObjectVersion" #define OBSPolicyActionDeleteObjectVersionTagging @"s3:DeleteObjectVersionTagging" #define OBSPolicyActionGetObject @"s3:GetObject" #define OBSPolicyActionGetObjectAcl @"s3:GetObjectAcl" #define OBSPolicyActionGetObjectTagging @"s3:GetObjectTagging" #define OBSPolicyActionGetObjectTorrent @"s3:GetObjectTorrent" #define OBSPolicyActionGetObjectVersion @"s3:GetObjectVersion" #define OBSPolicyActionGetObjectVersionAcl @"s3:GetObjectVersionAcl" #define OBSPolicyActionGetObjectVersionTagging @"s3:GetObjectVersionTagging" #define OBSPolicyActionGetObjectVersionTorrent @"s3:GetObjectVersionTorrent" #define OBSPolicyActionListMultipartUploadParts @"s3:ListMultipartUploadParts" #define OBSPolicyActionPutObject @"s3:PutObject" #define OBSPolicyActionPutObjectAcl @"s3:PutObjectAcl" #define OBSPolicyActionPutObjectTagging @"s3:PutObjectTagging" #define OBSPolicyActionPutObjectVersionAcl @"s3:PutObjectVersionAcl" #define OBSPolicyActionPutObjectVersionTagging @"s3:PutObjectVersionTagging" #define OBSPolicyActionRestoreObject @"s3:RestoreObject" #define OBSPolicyActionCreateBucket @"s3:CreateBucket" #define OBSPolicyActionDeleteBucket @"s3:DeleteBucket" #define OBSPolicyActionListBucket @"s3:ListBucket" #define OBSPolicyActionListBucketVersions @"s3:ListBucketVersions" #define OBSPolicyActionListAllMyBuckets @"s3:ListAllMyBuckets" #define OBSPolicyActionListBucketMultipartUploads @"s3:ListBucketMultipartUploads" #define OBSPolicyActionDeleteBucketPolicy @"s3:DeleteBucketPolicy" #define OBSPolicyActionDeleteBucketWebsite @"s3:DeleteBucketWebsite" #define OBSPolicyActionDeleteReplicationConfiguration @"s3:DeleteReplicationConfiguration" #define OBSPolicyActionGetAccelerateConfiguration @"s3:GetAccelerateConfiguration" #define OBSPolicyActionGetAnalyticsConfiguration @"s3:GetAnalyticsConfiguration" #define OBSPolicyActionGetBucketAcl @"s3:GetBucketAcl" #define OBSPolicyActionGetBucketCORS @"s3:GetBucketCORS" #define OBSPolicyActionGetBucketLocation @"s3:GetBucketLocation" #define OBSPolicyActionGetBucketLogging @"s3:GetBucketLogging" #define OBSPolicyActionGetBucketNotification @"s3:GetBucketNotification" #define OBSPolicyActionGetBucketPolicy @"s3:GetBucketPolicy" #define OBSPolicyActionGetBucketRequestPayment @"s3:GetBucketRequestPayment" #define OBSPolicyActionGetBucketTagging @"s3:GetBucketTagging" #define OBSPolicyActionGetBucketVersioning @"s3:GetBucketVersioning" #define OBSPolicyActionGetBucketWebsite @"s3:GetBucketWebsite" #define OBSPolicyActionGetEncryptionConfiguration @"s3:GetEncryptionConfiguration" #define OBSPolicyActionGetInventoryConfiguration @"s3:GetInventoryConfiguration" #define OBSPolicyActionGetLifecycleConfiguration @"s3:GetLifecycleConfiguration" #define OBSPolicyActionGetMetricsConfiguration @"s3:GetMetricsConfiguration" #define OBSPolicyActionGetReplicationConfiguration @"s3:GetReplicationConfiguration" #define OBSPolicyActionPutAccelerateConfiguration @"s3:PutAccelerateConfiguration" #define OBSPolicyActionPutAnalyticsConfiguration @"s3:PutAnalyticsConfiguration" #define OBSPolicyActionPutBucketAcl @"s3:PutBucketAcl" #define OBSPolicyActionPutBucketCORS @"s3:PutBucketCORS" #define OBSPolicyActionPutBucketLogging @"s3:PutBucketLogging" #define OBSPolicyActionPutBucketNotification @"s3:PutBucketNotification" #define OBSPolicyActionPutBucketPolicy @"s3:PutBucketPolicy" #define OBSPolicyActionPutBucketRequestPayment @"s3:PutBucketRequestPayment" #define OBSPolicyActionPutBucketTagging @"s3:PutBucketTagging" #define OBSPolicyActionPutBucketVersioning @"s3:PutBucketVersioning" #define OBSPolicyActionPutBucketWebsite @"s3:PutBucketWebsite" #define OBSPolicyActionPutEncryptionConfiguration @"s3:PutEncryptionConfiguration" #define OBSPolicyActionPutInventoryConfiguration @"s3:PutInventoryConfiguration" #define OBSPolicyActionPutLifecycleConfiguration @"s3:PutLifecycleConfiguration" #define OBSPolicyActionPutMetricsConfiguration @"s3:PutMetricsConfiguration" #define OBSPolicyActionPutReplicationConfiguration @"s3:PutReplicationConfiguration" // 3.0版本 #define OBSPolicyActionCreateBucket_OBS @"CreateBucket" #define OBSPolicyActionDeleteBucket_OBS @"DeleteBucket" #define OBSPolicyActionListBucket_OBS @"ListBucket" #define OBSPolicyActionHeadBucket_OBS @"HeadBucket" #define OBSPolicyActionListBucketVersions_OBS @"ListBucketVersions" #define OBSPolicyActionListBucketMultipartUploads_OBS @"ListBucketMultipartUploads" #define OBSPolicyActionGetBucketAcl_OBS @"GetBucketAcl" #define OBSPolicyActionPutBucketAcl_OBS @"PutBucketAcl" #define OBSPolicyActionGetBucketCORS_OBS @"GetBucketCORS" #define OBSPolicyActionPutBucketCORS_OBS @"PutBucketCORS" #define OBSPolicyActionGetBucketVersioning_OBS @"GetBucketVersioning" #define OBSPolicyActionPutBucketVersioning_OBS @"PutBucketVersioning" #define OBSPolicyActionGetBucketLocation_OBS @"GetBucketLocation" #define OBSPolicyActionGetBucketPolicy_OBS @"GetBucketPolicy" #define OBSPolicyActionDeleteBucketPolicy_OBS @"DeleteBucketPolicy" #define OBSPolicyActionPutBucketPolicy_OBS @"PutBucketPolicy" #define OBSPolicyActionGetBucketLogging_OBS @"GetBucketLogging" #define OBSPolicyActionPutBucketLogging_OBS @"PutBucketLogging" #define OBSPolicyActionGetBucketWebsite_OBS @"GetBucketWebsite" #define OBSPolicyActionPutBucketWebsite_OBS @"PutBucketWebsite" #define OBSPolicyActionDeleteBucketWebsite_OBS @"DeleteBucketWebsite" #define OBSPolicyActionGetLifecycleConfiguration_OBS @"GetLifecycleConfiguration" #define OBSPolicyActionPutLifecycleConfiguration_OBS @"PutLifecycleConfiguration" #define OBSPolicyActionGetBucketNotification_OBS @"GetBucketNotification" #define OBSPolicyActionPutBucketNotification_OBS @"PutBucketNotification" #define OBSPolicyActionGetReplicationConfiguration_OBS @"GetReplicationConfiguration" #define OBSPolicyActionGetObject_OBS @"GetObject" #define OBSPolicyActionGetObjectVersion_OBS @"GetObjectVersion" #define OBSPolicyActionPutObject_OBS @"PutObject" #define OBSPolicyActionGetObjectAcl_OBS @"GetObjectAcl" #define OBSPolicyActionGetObjectVersionAcl_OBS @"GetObjectVersionAcl" #define OBSPolicyActionPutObjectAcl_OBS @"PutObjectAcl" #define OBSPolicyActionPutObjectVersionAcl_OBS @"PutObjectVersionAcl" #define OBSPolicyActionDeleteObject_OBS @"DeleteObject" #define OBSPolicyActionDeleteObjectVersion_OBS @"DeleteObjectVersion" #define OBSPolicyActionListMultipartUploadParts_OBS @"ListMultipartUploadParts" #define OBSPolicyActionAbortMultipartUpload_OBS @"AbortMultipartUpload" #define OBSPolicyActionRestoreObject_OBS @"RestoreObject" #define OBSPolicyActionDeleteObject_OBS @"DeleteObject" #define OBSPolicyActionReplicateObject_OBS @"ReplicateObject" #define OBSPolicyActionReplicateDelete_OBS @"ReplicateDelete" #endif /* OBSServiceDefinition_h */