github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/obs/const.go (about) 1 // Copyright 2019 Huawei Technologies Co.,Ltd. 2 // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 3 // this file except in compliance with the License. You may obtain a copy of the 4 // License at 5 // 6 // http://www.apache.org/licenses/LICENSE-2.0 7 // 8 // Unless required by applicable law or agreed to in writing, software distributed 9 // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 10 // CONDITIONS OF ANY KIND, either express or implied. See the License for the 11 // specific language governing permissions and limitations under the License. 12 13 package obs 14 15 const ( 16 OBS_SDK_VERSION = "3.23.12" 17 USER_AGENT = "obs-sdk-go/" + OBS_SDK_VERSION 18 HEADER_PREFIX = "x-amz-" 19 HEADER_PREFIX_META = "x-amz-meta-" 20 HEADER_PREFIX_OBS = "x-obs-" 21 HEADER_PREFIX_META_OBS = "x-obs-meta-" 22 HEADER_DATE_AMZ = "x-amz-date" 23 HEADER_DATE_OBS = "x-obs-date" 24 HEADER_STS_TOKEN_AMZ = "x-amz-security-token" 25 HEADER_STS_TOKEN_OBS = "x-obs-security-token" 26 HEADER_ACCESSS_KEY_AMZ = "AWSAccessKeyId" 27 PREFIX_META = "meta-" 28 29 HEADER_CONTENT_SHA256_AMZ = "x-amz-content-sha256" 30 HEADER_ACL_AMZ = "x-amz-acl" 31 HEADER_ACL_OBS = "x-obs-acl" 32 HEADER_ACL = "acl" 33 HEADER_LOCATION_AMZ = "location" 34 HEADER_BUCKET_LOCATION_OBS = "bucket-location" 35 HEADER_COPY_SOURCE = "copy-source" 36 HEADER_COPY_SOURCE_RANGE = "copy-source-range" 37 HEADER_RANGE = "Range" 38 HEADER_STORAGE_CLASS = "x-default-storage-class" 39 HEADER_STORAGE_CLASS_OBS = "x-obs-storage-class" 40 HEADER_FS_FILE_INTERFACE_OBS = "x-obs-fs-file-interface" 41 HEADER_MODE = "mode" 42 HEADER_VERSION_OBS = "version" 43 HEADER_REQUEST_PAYER = "x-amz-request-payer" 44 HEADER_GRANT_READ_OBS = "grant-read" 45 HEADER_GRANT_WRITE_OBS = "grant-write" 46 HEADER_GRANT_READ_ACP_OBS = "grant-read-acp" 47 HEADER_GRANT_WRITE_ACP_OBS = "grant-write-acp" 48 HEADER_GRANT_FULL_CONTROL_OBS = "grant-full-control" 49 HEADER_GRANT_READ_DELIVERED_OBS = "grant-read-delivered" 50 HEADER_GRANT_FULL_CONTROL_DELIVERED_OBS = "grant-full-control-delivered" 51 HEADER_REQUEST_ID = "request-id" 52 HEADER_ERROR_CODE = "error-code" 53 HEADER_ERROR_MESSAGE = "error-message" 54 HEADER_BUCKET_REGION = "bucket-region" 55 HEADER_ACCESS_CONRTOL_ALLOW_ORIGIN = "access-control-allow-origin" 56 HEADER_ACCESS_CONRTOL_ALLOW_HEADERS = "access-control-allow-headers" 57 HEADER_ACCESS_CONRTOL_MAX_AGE = "access-control-max-age" 58 HEADER_ACCESS_CONRTOL_ALLOW_METHODS = "access-control-allow-methods" 59 HEADER_ACCESS_CONRTOL_EXPOSE_HEADERS = "access-control-expose-headers" 60 HEADER_EPID_HEADERS = "epid" 61 HEADER_VERSION_ID = "version-id" 62 HEADER_COPY_SOURCE_VERSION_ID = "copy-source-version-id" 63 HEADER_DELETE_MARKER = "delete-marker" 64 HEADER_WEBSITE_REDIRECT_LOCATION = "website-redirect-location" 65 HEADER_METADATA_DIRECTIVE = "metadata-directive" 66 HEADER_EXPIRATION = "expiration" 67 HEADER_EXPIRES_OBS = "x-obs-expires" 68 HEADER_RESTORE = "restore" 69 HEADER_OBJECT_TYPE = "object-type" 70 HEADER_NEXT_APPEND_POSITION = "next-append-position" 71 HEADER_STORAGE_CLASS2 = "storage-class" 72 HEADER_CONTENT_LENGTH = "content-length" 73 HEADER_CONTENT_TYPE = "content-type" 74 HEADER_CONTENT_LANGUAGE = "content-language" 75 HEADER_EXPIRES = "expires" 76 HEADER_CACHE_CONTROL = "cache-control" 77 HEADER_CONTENT_DISPOSITION = "content-disposition" 78 HEADER_CONTENT_ENCODING = "content-encoding" 79 HEADER_AZ_REDUNDANCY = "az-redundancy" 80 HEADER_BUCKET_TYPE = "bucket-type" 81 HEADER_BUCKET_REDUNDANCY = "bucket-redundancy" 82 HEADER_FUSION_ALLOW_UPGRADE = "fusion-allow-upgrade" 83 HEADER_FUSION_ALLOW_ALT = "fusion-allow-alternative" 84 headerOefMarker = "oef-marker" 85 86 HEADER_ETAG = "etag" 87 HEADER_LASTMODIFIED = "last-modified" 88 89 HEADER_COPY_SOURCE_IF_MATCH = "copy-source-if-match" 90 HEADER_COPY_SOURCE_IF_NONE_MATCH = "copy-source-if-none-match" 91 HEADER_COPY_SOURCE_IF_MODIFIED_SINCE = "copy-source-if-modified-since" 92 HEADER_COPY_SOURCE_IF_UNMODIFIED_SINCE = "copy-source-if-unmodified-since" 93 94 HEADER_IF_MATCH = "If-Match" 95 HEADER_IF_NONE_MATCH = "If-None-Match" 96 HEADER_IF_MODIFIED_SINCE = "If-Modified-Since" 97 HEADER_IF_UNMODIFIED_SINCE = "If-Unmodified-Since" 98 99 HEADER_SSEC_ENCRYPTION = "server-side-encryption-customer-algorithm" 100 HEADER_SSEC_KEY = "server-side-encryption-customer-key" 101 HEADER_SSEC_KEY_MD5 = "server-side-encryption-customer-key-MD5" 102 103 HEADER_SSEKMS_ENCRYPTION = "server-side-encryption" 104 HEADER_SSEKMS_KEY = "server-side-encryption-aws-kms-key-id" 105 HEADER_SSEKMS_ENCRYPT_KEY_OBS = "server-side-encryption-kms-key-id" 106 107 HEADER_SSEC_COPY_SOURCE_ENCRYPTION = "copy-source-server-side-encryption-customer-algorithm" 108 HEADER_SSEC_COPY_SOURCE_KEY = "copy-source-server-side-encryption-customer-key" 109 HEADER_SSEC_COPY_SOURCE_KEY_MD5 = "copy-source-server-side-encryption-customer-key-MD5" 110 111 HEADER_SSEKMS_KEY_AMZ = "x-amz-server-side-encryption-aws-kms-key-id" 112 113 HEADER_SSEKMS_KEY_OBS = "x-obs-server-side-encryption-kms-key-id" 114 115 HEADER_SUCCESS_ACTION_REDIRECT = "success_action_redirect" 116 117 headerFSFileInterface = "fs-file-interface" 118 119 HEADER_DATE_CAMEL = "Date" 120 HEADER_HOST_CAMEL = "Host" 121 HEADER_HOST = "host" 122 HEADER_AUTH_CAMEL = "Authorization" 123 HEADER_MD5_CAMEL = "Content-MD5" 124 HEADER_LOCATION_CAMEL = "Location" 125 HEADER_CONTENT_LENGTH_CAMEL = "Content-Length" 126 HEADER_CONTENT_TYPE_CAML = "Content-Type" 127 HEADER_USER_AGENT_CAMEL = "User-Agent" 128 HEADER_ORIGIN_CAMEL = "Origin" 129 HEADER_ACCESS_CONTROL_REQUEST_HEADER_CAMEL = "Access-Control-Request-Headers" 130 HEADER_CACHE_CONTROL_CAMEL = "Cache-Control" 131 HEADER_CONTENT_DISPOSITION_CAMEL = "Content-Disposition" 132 HEADER_CONTENT_ENCODING_CAMEL = "Content-Encoding" 133 HEADER_CONTENT_LANGUAGE_CAMEL = "Content-Language" 134 HEADER_EXPIRES_CAMEL = "Expires" 135 HEADER_ACCEPT_ENCODING = "Accept-Encoding" 136 137 PARAM_VERSION_ID = "versionId" 138 PARAM_RESPONSE_CONTENT_TYPE = "response-content-type" 139 PARAM_RESPONSE_CONTENT_LANGUAGE = "response-content-language" 140 PARAM_RESPONSE_EXPIRES = "response-expires" 141 PARAM_RESPONSE_CACHE_CONTROL = "response-cache-control" 142 PARAM_RESPONSE_CONTENT_DISPOSITION = "response-content-disposition" 143 PARAM_RESPONSE_CONTENT_ENCODING = "response-content-encoding" 144 PARAM_IMAGE_PROCESS = "x-image-process" 145 146 PARAM_ALGORITHM_AMZ_CAMEL = "X-Amz-Algorithm" 147 PARAM_CREDENTIAL_AMZ_CAMEL = "X-Amz-Credential" 148 PARAM_DATE_AMZ_CAMEL = "X-Amz-Date" 149 PARAM_DATE_OBS_CAMEL = "X-Obs-Date" 150 PARAM_EXPIRES_AMZ_CAMEL = "X-Amz-Expires" 151 PARAM_SIGNEDHEADERS_AMZ_CAMEL = "X-Amz-SignedHeaders" 152 PARAM_SIGNATURE_AMZ_CAMEL = "X-Amz-Signature" 153 154 DEFAULT_SIGNATURE = SignatureV2 155 DEFAULT_REGION = "region" 156 DEFAULT_CONNECT_TIMEOUT = 60 157 DEFAULT_SOCKET_TIMEOUT = 60 158 DEFAULT_HEADER_TIMEOUT = 60 159 DEFAULT_IDLE_CONN_TIMEOUT = 30 160 DEFAULT_MAX_RETRY_COUNT = 3 161 DEFAULT_MAX_REDIRECT_COUNT = 3 162 DEFAULT_MAX_CONN_PER_HOST = 1000 163 UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD" 164 LONG_DATE_FORMAT = "20060102T150405Z" 165 SHORT_DATE_FORMAT = "20060102" 166 ISO8601_DATE_FORMAT = "2006-01-02T15:04:05Z" 167 ISO8601_MIDNIGHT_DATE_FORMAT = "2006-01-02T00:00:00Z" 168 RFC1123_FORMAT = "Mon, 02 Jan 2006 15:04:05 GMT" 169 170 V4_SERVICE_NAME = "s3" 171 V4_SERVICE_SUFFIX = "aws4_request" 172 173 V2_HASH_PREFIX = "AWS" 174 OBS_HASH_PREFIX = "OBS" 175 176 V4_HASH_PREFIX = "AWS4-HMAC-SHA256" 177 V4_HASH_PRE = "AWS4" 178 179 DEFAULT_SSE_KMS_ENCRYPTION = "aws:kms" 180 DEFAULT_SSE_KMS_ENCRYPTION_OBS = "kms" 181 182 DEFAULT_SSE_C_ENCRYPTION = "AES256" 183 184 HTTP_GET = "GET" 185 HTTP_POST = "POST" 186 HTTP_PUT = "PUT" 187 HTTP_DELETE = "DELETE" 188 HTTP_HEAD = "HEAD" 189 HTTP_OPTIONS = "OPTIONS" 190 191 REQUEST_PAYER = "request-payer" 192 TRAFFIC_LIMIT = "traffic-limit" 193 CALLBACK = "callback" 194 MULTI_AZ = "3az" 195 196 MAX_PART_SIZE = 5 * 1024 * 1024 * 1024 197 MIN_PART_SIZE = 100 * 1024 198 DEFAULT_PART_SIZE = 9 * 1024 * 1024 199 MAX_PART_NUM = 10000 200 201 GET_OBJECT = "GetObject" 202 PUT_OBJECT = "PutObject" 203 PUT_FILE = "PutFile" 204 APPEND_OBJECT = "AppendObject" 205 ) 206 207 var ( 208 interestedHeaders = []string{"content-md5", "content-type", "date"} 209 210 allowedRequestHTTPHeaderMetadataNames = map[string]bool{ 211 "content-type": true, 212 "content-md5": true, 213 "content-length": true, 214 "content-language": true, 215 "expires": true, 216 "origin": true, 217 "cache-control": true, 218 "content-disposition": true, 219 "content-encoding": true, 220 "access-control-request-method": true, 221 "access-control-request-headers": true, 222 "x-default-storage-class": true, 223 "location": true, 224 "date": true, 225 "etag": true, 226 "range": true, 227 "host": true, 228 "if-modified-since": true, 229 "if-unmodified-since": true, 230 "if-match": true, 231 "if-none-match": true, 232 "last-modified": true, 233 "content-range": true, 234 "accept-encoding": true, 235 } 236 237 allowedLogResponseHTTPHeaderNames = map[string]bool{ 238 "content-type": true, 239 "etag": true, 240 "connection": true, 241 "content-length": true, 242 "date": true, 243 "server": true, 244 } 245 246 allowedResourceParameterNames = map[string]bool{ 247 "acl": true, 248 "backtosource": true, 249 "metadata": true, 250 "policy": true, 251 "torrent": true, 252 "logging": true, 253 "location": true, 254 "storageinfo": true, 255 "quota": true, 256 "storageclass": true, 257 "storagepolicy": true, 258 "requestpayment": true, 259 "versions": true, 260 "versioning": true, 261 "versionid": true, 262 "uploads": true, 263 "uploadid": true, 264 "partnumber": true, 265 "website": true, 266 "notification": true, 267 "lifecycle": true, 268 "deletebucket": true, 269 "delete": true, 270 "cors": true, 271 "restore": true, 272 "encryption": true, 273 "tagging": true, 274 "append": true, 275 "modify": true, 276 "position": true, 277 "replication": true, 278 "response-content-type": true, 279 "response-content-language": true, 280 "response-expires": true, 281 "response-cache-control": true, 282 "response-content-disposition": true, 283 "response-content-encoding": true, 284 "x-image-process": true, 285 "x-oss-process": true, 286 "x-image-save-bucket": true, 287 "x-image-save-object": true, 288 "ignore-sign-in-query": true, 289 "name": true, 290 "rename": true, 291 "customdomain": true, 292 "mirrorbacktosource": true, 293 } 294 295 obsStorageClasses = []string{ 296 string(StorageClassStandard), 297 string(StorageClassWarm), 298 string(StorageClassCold), 299 string(StorageClassDeepArchive), 300 } 301 )