华为云用户手册

  • 使用方法 华为云API符合RESTful API设计理论。 REST从资源的角度观察整个网络,分布在各处的资源由URI(Uniform Resource Identifier)确定,客户端的应用通过URL(Unified Resource Locator)获取资源。 URL的一般格式为:https://Endpoint/uri。 URL中的参数说明如表1所示。 表1 URL中的参数说明 参数 描述 Endpoint 云商店的Endpoint为“mkt.myhuaweicloud.com”和“mkt.myhuaweicloud.com”。 uri 资源路径,也即API访问路径。从具体接口的URI模块获取,例如“v1.0/{partner_id}/billing/bill-mgr/push-usage-data”。 其中,uri中的用户标识参数说明如下: 使用“partner_id”标识,表示该接口只能使用合作伙伴(ISV)自身的AK/SK或者Token调用。 华为云接口采用HTTP传输协议,有如下约束条件: 请求/响应报文使用JSON报文UTF-8字符集编码。 媒体类型表示为Application/json。 可选参数在消息体中可以不编码。 接口请求参数和响应参数中时间格式统一为UTC时间(包括时区),格式为yyyyMMdd'T'HHmmss'Z'。 其中,HH范围是0~23,mm和ss范围是0~59。 父主题: 接口使用方法
  • 响应消息 响应参数说明请参见下表: 表2 响应参数表 参数 是否必选 类型 最大字符长度 说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 encryptType O String 3 敏感信息加密算法 1:AES256_CBC_PK CS 5Padding(默认值) 2:AES128_CBC_PKCS5Padding 说明: 敏感信息加密算法是AES256_CBC_PKCS5Padding时返回值为1; 敏感信息加密算法是AES128_CBC_PKCS5Padding时返回值为2; info O InstanceInfo[] / 实例详情 InstanceInfo数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 instanceId M String 64 实例id appInfo O AppInfo N/A 应用实例信息。 客户购买商品后,商家需要返回登录服务地址(网站地址)或免登地址供客户后续操作。 说明: SaaS商品必须向客户提供应用使用信息,包括使用地址、账号、密码等。 如可实现通过短信、邮件等其他方式发送使用信息,则接口中允许不响应;否则,必须在接口中返回应用实例信息。 如使用信息不仅包含使用地址及账号密码,可通过如下memo参数灵活返回其他使用信息或使用说明等。 appInfo数据结构定义请参见下表。 usageInfos O UsageInfo[] N/A 应用实例关联的用量信息,按需和按需套餐包实例需要返回,对应按需套餐包,需要分别返回套餐包关联的所有费用项的用量信息。 AppInfo数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 frontEndUrl M String 512 前台地址。 客户购买商品后,可以访问的网站地址。 adminUrl O String 512 管理地址。 客户购买商品后,可以访问的管理后台地址。 userName O String 128 加密后的管理员账号。 客户购买商品后,访问商家管理后台的账号(一般为邮箱和手机号)。该值由16位iv加密向量和base编码后的用户名密文组成。 iv+base64(AES_CBC(accessKey,userName)) 需要使用Key值对账号做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 password O String 128 加密后的管理员初始密码。 客户购买商品后,访问商家管理后台的密码(一般由商家生成)。该值由16位iv加密向量和base编码后的密码密文组成。 iv+base64(AES_CBC(accessKey,pwd)) 需要使用Key值对密码做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 memo O String 1024 备注。 说明: 如果备注包含中文内容,请将中文转换成unicode编码,例如:“中文”可以转换成“\u4e2d\u6587”。 UsageInfo数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 relatedInstanceId O String 64 关联的按需实例ID,当查询按需套餐包实例的用量数据时,还需要返回此用量对应的按需实例id,譬如,当前套餐包包含短信100条和彩信50条,则在查询此套餐包的用量扣减时需要返回两个UsageInfo信息,分别对应短信和彩信的用量信息,relatedInstanceId分别对应短信和彩信按需实例ID usageValue M Double(12,4) 20 使用量具体值,最多支持4位有效小数,对于按需实例,应该是一个总体的累积值,对于按需套餐包实例,应该是套餐包的已用用量信息 statisticalTime M String 20 使用量统计时间,取UTC时间。 格式:yyyyMMddHHmmssSSS dashboardUrl O String 512 用量详细查看看板地址。 客户购买按需或按需套餐包商品后,可以在这个平台查看具体的用量信息。 响应消息示例: { "resultCode" : "000000", "resultMsg" : "success.", "encryptType" : "1", "info" : [{ "instanceId" : "ebc28eb6-4606-4098-b4bd-c201c99a0654", "appInfo" : { "frontEndUrl" : "https://www.***.com", "adminUrl" : "https://www.*****.com/admin", "userName" : "*****", "password" : "*****", "memo" : "hvave a test, 测试!" }, "usageInfo" : [{ "relatedInstanceId" : "ebc28eb6-4606-4098-b4bd-c201c99a0654", "usageValue" : "0.12", "statisticalTime" : "20221101025113409", "dashboardUrl" : "https://www.baidu.com/dashboard" } ] }, { "instanceId" : "fe28e27e-1157-4105-8592-24cc9488db10", "appInfo" : { "frontEndUrl" : "https://www.***.com", "adminUrl" : "https://www.***.com/admin", "userName" : "*****", "password" : "*****", "memo" : "hvave a test, 测试!" }, "usageInfo" : [{ "relatedInstanceId" : "fe28e27e-1157-4105-8592-24cc9488db10", "usageValue" : "2042", "statisticalTime" : "20221101025113409", "dashboardUrl" : "https://www.baidu.com/dashboard" } ] }, { "instanceId" : "92df74e4-163e-4e0b-a206-d9800d33881b", "appInfo" : { "frontEndUrl" : "https://www.baidu.com", "adminUrl" : "https://www.baidu.com/admin", "userName" : "huawei", "password" : "huawei123456", "memo" : "hvave a test, 测试!" }, "usageInfo" : [{ "relatedInstanceId" : "ebc28eb6-4606-4098-b4bd-c201c99a0654", "usageValue" : "3309", "statisticalTime" : "20221101025113409", "dashboardUrl" : "https://www.baidu.com/dashboard" }, { "relatedInstanceId" : "fe28e27e-1157-4105-8592-24cc9488db10", "usageValue" : "3309", "statisticalTime" : "20221101025113409", "dashboardUrl" : "https://www.baidu.com/dashboard" } ] } ] }
  • 请求方法:GET 请求参数说明请参见下表: 表1 请求参数表 参数 是否必选 类型 最大字符长度 说明 authToken M String 50 安全校验令牌。 取值请参见authToken取值说明。 activity M String 20 接口请求标识,用于区分接口请求场景。 查询实例场景取值:queryInstance timeStamp M String 20 请求发起时的时间戳,取UTC时间。 格式:yyyyMMddHHmmssSSS instanceId M String 64 实例ID,支持批量,多个实例批量查询时用逗号分隔,单次最多支持100个实例查询。 testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试业务 默认取值为“0”。 请求示例: https://example.isv.com?activity=queryInstance&instanceId=ebc28eb6-4606-4098-b4bd-c201c99a0654%2Cfe28e27e-1157-4105-8592-24cc9488db10%2C92df74e4-163e-4e0b-a206-d9800d33881b&testFlag=1&timeStamp=20230327065233980&authToken=Eh%2F3Ud%2BR1j3d%2FwOui5CAcvRipM8IuribvgkXfJAsTfE%3D
  • 请求行 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下: Method Request-URI HTTP-Version CRLF Method:表示请求方法(所有方法全为大写),各个方法的解释如下: GET:请求获取Request-URI所标识的资源。 POST:在Request-URI所标识的资源后附加新的数据。 PUT:请求服务器存储一个资源,并用Request-URI作为其标识。 DELETE:请求服务器删除Request-URI所标识的资源。 Request-URI:是一个统一资源标识符。 可以在URI后面用‘?’和‘&’添加不同的查询条件组合。URI中“{}”中包含的内容为URI的参数,其中“?”之前的部分是路径参数,之后的部分是查询参数。HTTP-Version:表示请求的HTTP协议版本。 CRLF:表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。
  • 状态行 状态行格式如下: HTTP-Version Status-Code Reason-Phrase CRLF HTTP-Version:表示服务器HTTP协议的版本号。 Status-Code:表示服务器发回的响应状态代码。 状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 1xx:指示信息,表示请求已接收,继续处理。 2xx:成功,表示请求已被成功接收、理解、接受。 3xx:重定向,要完成请求必须进行更进一步的操作。 4xx:客户端错误,请求有语法错误或请求无法实现。 5xx:服务器端错误,服务器未能实现合法的请求。 Reason-Phrase:表示状态代码的文本描述。
  • License相关 在进行License验证时,需要收集用户设备指纹信息,包括MAC地址、硬盘序列号、主板序列号和CPU序列号。设备指纹最大长度限制为5K字节。 设备指纹字符串拼接时,各参数之间以“|”号分割,获取不到时就为空。获取到的MAC地址和硬盘序列号有多个时,以英文“,”号分隔。字符串拼接完成后,转换为大写。字符串拼接如下: string='${macAddr}|${diskId}|${boardId}|${cpuId}'.toUpperCase(); 设备指纹示例:04:7C:16:5E:E3:5D|001B_444A_488B_5CEC.||BFEBFBFF00090672 Sdk::GetLicenseFileRequest Sdk::GetLicenseStringRequest Sdk::LicenseVerifyNotify Sdk::TrialExpirationAndGetLicense 父主题: 管理在云
  • 限定条件下载 下载对象时,可以指定一个或多个限定条件,满足限定条件时则进行下载,否则抛出异常,下载对象失败。 您可以使用的限定条件如下: 参数 作用 OBS iOS SDK对应方法 ifModifiedSince 如果对象在指定的时间后有修改,则返回对象内容,否则返回错误。 request.ifModifiedSince ifUnmodifiedSince 如果对象在指定的时间后没有修改,则返回对象内容,否则返回错误。 request.ifUnmodifiedSince ifETagMatch 如果对象的ETag值与该参数值相同,则返回对象内容,否则抛出异常。 request.ifETagMatch ifETagNoneMatch 如果对象的ETag值与该参数值不相同,则返回对象内容,否则抛出异常。 request.ifETagNoneMatch 对象的ETag值是指对象数据的MD5校验值。 如果限制条件不符合,则会返回错误preconditionFailed。 以下代码展示了如何进行限定条件下载: static OBSClient *client; NSString *endPoint = @"your-endpoint"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量AccessKeyID和SecretAccessKey。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html char* ak_env = getenv("AccessKeyID"); char* sk_env = getenv("SecretAccessKey"); NSString *AK = [NSString stringWithUTF8String:ak_env]; NSString *SK = [NSString stringWithUTF8String:sk_env]; // 初始化身份验证 OBSStaticCredentialProvider *credentialProvider = [[OBSStaticCredentialProvider alloc] initWithAccessKey:AK secretKey:SK]; //初始化服务配置 OBSServiceConfiguration *conf = [[OBSServiceConfiguration alloc] initWithURLString:endPoint credentialProvider:credentialProvider]; // 初始化client client = [[OBSClient alloc] initWithConfiguration:conf]; // 流式下载 OBSGetObjectToDataRequest *request = [[OBSGetObjectToDataRequest alloc]initWithBucketName:@"bucketname" objectKey:@"objectname"]; // 限定条件 request.ifModifiedSince = [[OBSUtils getDateFormatterRFC1123]dateFromString:@"Mon, 18 Dec 2017 03:50:49 GMT"]; // Etag相等 request.ifETagMatch = @"123223"; // 下载进度 request.downloadProgressBlock = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) { NSLog(@"%0.1f%%",(float)(totalBytesWritten)*100/(float)totalBytesExpectedToWrite); }; // 下载的数据 __block NSMutableData *objectData = [NSMutableData new]; request.onReceiveDataBlock = ^(NSData *data) { [objectData appendData:data]; }; // 下载结果 [client getObject:request completionHandler:^(OBSGetObjectResponse *response, NSError *error){ NSLog(@"%@",response); }] ; 当使用OBSGetObjectToFileRequest时,可以设置background属性为YES进行后台下载。 父主题: 下载对象
  • 生命周期管理简介 OBS允许您对桶设置生命周期规则,实现自动转换对象的存储类型、自动淘汰过期的对象,以有效利用存储特性,优化存储空间。针对不同前缀的对象,您可以同时设置多条规则。一条规则包含: 规则ID,用于标识一条规则,不能重复。 受影响的对象前缀,此规则只作用于符合前缀的对象。 最新版本对象的转换策略,指定方式为: 指定满足前缀的对象创建后第几天时转换为指定的存储类型。 直接指定满足前缀的对象转换为指定的存储类型的日期。 最新版本对象过期时间,指定方式为: 指定满足前缀的对象创建后第几天时过期。 直接指定满足前缀的对象过期日期。 历史版本对象转换策略,指定方式为: 指定满足前缀的对象成为历史版本后第几天时转换为指定的存储类型。 历史版本对象过期时间,指定方式为: 指定满足前缀的对象成为历史版本后第几天时过期。 是否生效标识。 更多关于生命周期的内容请参考生命周期管理。 对象过期后会被OBS服务端自动删除。 对象转换策略中的时间必须早于对象过期时间;历史版本对象转换策略中的时间也必须早于历史版本对象的过期时间。 桶必须开启多版本状态,历史版本对象转换策略和历史版本对象过期时间配置才能生效。 父主题: 生命周期管理
  • 修订记录 发布日期 修订记录 2024-04-30 第十次正式发布。 修改章节: SDK下载。 2020-04-21 第九次正式发布。 修改章节: 配置OBS客户端,新增配置请求连接数的相关说明。 2020-03-13 第八次正式发布。 修改章节: 使用临时URL进行授权访问,新增获取对象的示例代码。 2019-11-20 第七次正式发布。 调整以下章节的位置: 示例程序。 技术支持渠道。 2019-11-1 第六次正式发布 修改章节: 2.13-OBS客户端通用示例,新增以局部变量形式创建OBS客户端的相关说明。 3.2-创建OBS客户端,新增以自定义域名访问方式创建OBS客户端的使用说明。 5.5-设置对象属性,新增以任意字符串设置对象上传类型的相关内容。 7.3-列举对象,添加了列举根目录下所有文件夹的代码样例。 7.5-复制对象,完善复制对象时的属性重写相关代码样例。 2019-08-20 第五次正式发布 修改章节: 创建OBS客户端,新增并发场景下的使用说明。 文件上传,完善错误处理的判断方式。 设置对象属性,新增上传时设置文件类型的介绍。 2019-05-30 第四次正式发布 修改章节: OBS服务环境搭建,增加临时访问密钥相关内容。 创建OBS客户端,增加临时访问密钥相关代码样例。 2019-03-05 第三次正式发布 新增章节: API参考。 2018-10-31 第二次正式发布 新增章节: 追加上传。 修改章节: 管理桶访问权限,修改成自定义接口枚举值。 2018-5-31 第一次正式发布。
  • 对象上传简介 在OBS中,用户操作的基本数据单元是对象。OBS iOS SDK提供了丰富的对象上传接口,可以通过以下方式上传对象: 流式上传 文件上传 分段上传 追加上传 断点续传上传 SDK支持上传0KB~5GB的对象。流式上传、文件上传和追加上传的内容大小不能超过5GB;当上传较大文件时,请使用分段上传,分段上传每段内容大小不能超过5GB。 如果上传的对象权限设置为匿名用户读取权限,对象上传成功后,匿名用户可通过链接地址访问该对象数据。对象链接地址格式为:https://桶名.域名/文件夹目录层级/对象名。如果该对象存在于桶的根目录下,则链接地址将不需要有文件夹目录层级。 父主题: 上传对象
  • 断点续传下载 当下载大对象到本地文件时,经常出现因网络不稳定或程序崩溃导致下载失败的情况。失败后再次重新下载不仅浪费资源,而且当网络不稳定时仍然有下载失败的风险。断点续传下载接口能有效地解决此类问题引起的下载失败,其原理是将待下载的对象分成若干个分段分别下载,并实时地将每段下载结果统一记录在checkpoint文件中,仅当所有分段都下载成功时返回下载成功的结果,否则抛出异常提醒用户再次调用接口进行重新下载(重新下载时因为有checkpoint文件记录当前的下载进度,避免重新下载所有分段,从而节省资源提高效率)。 您可以通过downloadFile进行断点续传下载。该接口可设置的参数如下: 参数 作用 OBS iOS SDK对应方法 bucketName 桶名,必选参数。 request.bucketName objectKey 对象名,必选参数。 request.objectKey downloadFilePath 下载对象的本地文件全路径。 request.downloadFilePath versionID 对象的版本号。 request.versionID enableCheckpoint 是否开启断点续传模式,默认为NO,表示不开启。 request.enableCheckpoint enableMD5Check 是否开启MD5校验。 request.enableMD5Check enableForceOverwrite 是否开启强制覆盖。 request.enableForceOverwrite checkpointFilePath 记录下载进度的文件,只在断点续传模式下有效。当该值为空时,默认与下载对象的本地文件路径同目录。 request.checkpointFilePath partSize 分段大小,单位字节,取值范围是5MB~5GB。 request.partSize ifModifiedSince 如果对象在指定的时间后有修改,则返回对象内容,否则返回错误。。 request.ifModifiedSince ifUnmodifiedSince 如果对象在指定的时间后没有修改,则返回对象内容,否则返回错误。 request.ifUnmodifiedSince ifETagMatch 如果对象的ETag值与该参数值相同,则返回对象内容,否则抛出异常。 request.ifETagMatch ifETagNoneMatch 如果对象的ETag值与该参数值不相同,则返回对象内容,否则抛出异常。 request.ifETagNoneMatch 以下代码展示了如何使用断点续传下载接口下载对象到本地文件: static OBSClient *client; NSString *endPoint = @"your-endpoint"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量AccessKeyID和SecretAccessKey。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html char* ak_env = getenv("AccessKeyID"); char* sk_env = getenv("SecretAccessKey"); NSString *AK = [NSString stringWithUTF8String:ak_env]; NSString *SK = [NSString stringWithUTF8String:sk_env]; // 初始化身份验证 OBSStaticCredentialProvider *credentialProvider = [[OBSStaticCredentialProvider alloc] initWithAccessKey:AK secretKey:SK]; //初始化服务配置 OBSServiceConfiguration *conf = [[OBSServiceConfiguration alloc] initWithURLString:endPoint credentialProvider:credentialProvider]; // 初始化client client = [[OBSClient alloc] initWithConfiguration:conf]; // 存储路径 NSString * outfilePath = [NSTemporaryDirectory() stringByAppendingString:@"filename"]; // 最大并发数 self.client.configuration.maxConcurrentDownloadRequestCount = 5; // 断点续传下载 OBSDownloadFileRequest *request = [[OBSDownloadFileRequest alloc]initWithBucketName:@"bucketname" objectKey:@"objectname" downloadFilePath:outfilePath]; // 是否打开强制覆盖 request.enableForceOverwrite = YES; // 分段大小 request.partSize = [NSNumber numberWithInteger:5*1024*1024]; // 是否开启断点续传 request.enableCheckpoint = YES; request.downloadProgressBlock = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) { NSLog(@"%0.1f%%",(float)floor(totalBytesWritten*10000/totalBytesExpectedToWrite)/100); }; OBSBFTask *task = [client downloadFile:request completionHandler:^(OBSDownloadFileResponse *response, NSError *error) { NSLog(@"%@",response); }]; [task waitUntilFinished]; if(task.error){ // 重新下载 } 父主题: 下载对象
  • 追加上传 追加上传可实现对同一个对象追加数据内容的功能。您可以通过appendObject进行追加上传。示例代码如下: NSString *filePath = [[NSBundle mainBundle] pathForResource:@"FileName" ofType:@"FileSuffix"]; NSFileManager *manager = [NSFileManager defaultManager]; NSDictionary *fileDic = [manager attributesOfItemAtPath:filePath error:nil]; unsigned long long size = [[fileDic objectForKey:NSFileSize] longLongValue]; int filesize = size; //第一次追加上传 OBSAppendObjectWithFileRequest *request = [[OBSAppendObjectWithFileRequest alloc] initWithBucketName:@"bucketName" objectKey:@"objectname" uploadFilePath:filePath]; request.position = [NSNumber numberWithFloat:0]; request.uploadProgressBlock = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { NSLog(@"%0.1f%%",(float)floor(totalBytesSent*10000/totalBytesExpectedToSend)/100); }; [client appendObject:request completionHandler:^(OBSAppendObjectResponse *response, NSError *error) { NSLog(@"%@",response); //下次上传位置 Int position = response.nextPosition; }]; //第二次追加上传 OBSAppendObjectWithFileRequest *request = [[OBSAppendObjectWithFileRequest alloc] initWithBucketName:@"bucketName" objectKey:@"objectname" uploadFilePath:filePath]; request.position = [NSNumber numberWithFloat:size]; request.uploadProgressBlock = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { NSLog(@"%0.1f%%",(float)floor(totalBytesSent*10000/totalBytesExpectedToSend)/100); }; [client appendObject:request completionHandler:^(OBSAppendObjectResponse *response, NSError *error) { NSLog(@"%@",response); //下次上传位置 Int position = response.nextPosition; }]; putObject上传的对象可覆盖appendObject上传的对象,覆盖后对象变为普通对象,不可再进行追加上传。 第一次调用追加上传时,如果已存在同名的普通对象,则会抛出异常(HTTP状态码为409)。 追加上传返回的ETag是当次追加数据内容的ETag,不是完整对象的ETag。 单次追加上传的内容不能超过5GB,且最多支持10000次追加上传。 追加上传成功后,可通过response.nextPosition获取下次追加上传的位置;或者通过getObjectMetadata接口获取下次追加上传的位置。 父主题: 上传对象
  • 断点续传上传 当上传大文件时,经常出现因网络不稳定或程序崩溃导致上传失败的情况。失败后再次重新上传不仅浪费资源,而且当网络不稳定时仍然有上传失败的风险。断点续传上传接口能有效地解决此类问题引起的上传失败,其原理是将待上传的文件分成若干个分段分别上传,并实时地将每段上传结果统一记录在checkpoint文件中,仅当所有分段都上传成功时返回上传成功的结果,否则抛出异常提醒用户再次调用接口进行重新上传(重新上传时因为有checkpoint文件记录当前的上传进度,避免重新上传所有分段,从而节省资源提高效率)。 您可以通过uploadFile进行断点续传上传。该接口可设置的参数如下: 参数 作用 OBS iOS SDK对应方法 bucketName 桶名,必选参数。 request.bucketName objectKey 对象名,必选参数。 request.objectKey objectACLPolicy 对象访问策略。 request.objectACLPolicy storageClass 对象存储类型。 request.storageClass metaDataDict 对象元数据。 request.metaDataDict websiteRedirectLocation 网址重定向位置。 request.websiteRedirectLocation encryption 加密方式。 request.encryption enableCheckpoint 是否开启断点续传模式,默认为NO,表示不开启。 request.enableCheckpoint enableMD5Check 是否开启MD5校验,默认为NO,表示不开启。 request.enableMD5Check checkpointFilePath 记录上传进度的文件,只在断点续传模式下有效。当该值为空时,默认与待上传的本地文件同目录。文件名后缀可指定为obsuploadcheckpoint。 request.checkpointFilePath partSize 分段大小,单位字节,取值范围是100KB~5GB,默认为5MB。 request.partSize 以下代码展示了如何使用断点续传上传接口上传文件: static OBSClient *client; NSString *endPoint = @"your-endpoint"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量AccessKeyID和SecretAccessKey。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html char* ak_env = getenv("AccessKeyID"); char* sk_env = getenv("SecretAccessKey"); NSString *AK = [NSString stringWithUTF8String:ak_env]; NSString *SK = [NSString stringWithUTF8String:sk_env]; // 初始化身份验证 OBSStaticCredentialProvider *credentialProvider = [[OBSStaticCredentialProvider alloc] initWithAccessKey:AK secretKey:SK]; //初始化服务配置 OBSServiceConfiguration *conf = [[OBSServiceConfiguration alloc] initWithURLString:endPoint credentialProvider:credentialProvider]; // 初始化client client = [[OBSClient alloc] initWithConfiguration:conf]; // 分段上传的最大并发数 client.configuration.maxConcurrentUploadRequestCount = 5; // 分段上传请求的最大连接数 client.configuration.uploadSessionConfiguration.HTTPMaximumConnectionsPerHost = 10; NSString *filePath = [[NSBundle mainBundle]pathForResource:@"fileName" ofType:@"Type"]; OBSUploadFileRequest *request = [[OBSUploadFileRequest alloc]initWithBucketName:@"bucketname" objectKey:@"objectname" uploadFilePath:filePath]; // 分段大小为5MB request.partSize = [NSNumber numberWithInteger: 5 * 1024*1024]; // 开启断点续传模式 request.enableCheckpoint = YES; // 指定checkpoint文件路径 request.checkpointFilePath = @"Your CheckPoint File"; // 上传文件 request.uploadProgressBlock = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { NSLog(@"%0.1f%%",(float)floor(totalBytesSent*10000/totalBytesExpectedToSend)/100); }; OBSBFTask *task = [client uploadFile:request completionHandler:^(OBSUploadFileResponse *response, NSError *error) { NSLog(@"%@",response); if(error){ // 再次上传 } }]; 断点续传上传接口是利用分段上传特性实现的,是对分段上传的封装和加强。 断点续传上传接口不仅能在失败重传时节省资源提高效率,还因其对分段进行并发上传的机制能加快上传速度,帮助用户快速完成上传业务;且其对用户透明,用户不用关心checkpoint文件的创建和删除、分段任务的切分、并发上传的实现等内部细节。 enableCheckpoint参数默认是NO,代表不启用断点续传模式,此时断点续传上传接口退化成对分段上传的简单封装,不会产生checkpoint文件。 checkpointFile参数仅在enableCheckpoint参数为YES时有效。 当前,当有多个上传任务需要并发执行时,需为每个上传任务初始化一个client及request进行处理。 父主题: 上传对象
  • RDS for MySQL 5.6 表3 云数据库 RDS for MySQL 5.6版本说明 日期 特性描述 2023-09-01 5.6.51版本更新以下内容: 新特性及性能优化 优化了SQL限流功能。 修复问题 修复了社区审计日志线程挂住的问题。 2023-03-15 5.6.51版本更新以下内容: 新特性及性能优化 优化了超大SQL审计日志的打印。 强化了日志打印的安全性。 修复问题 修复参考表添加索引与另一张表添加外键并发执行时可能出现的复制异常。 2022-09-09 新特性及性能优化 KILL会话支持per thread连接方式。 修复问题 修复开启proxy可能导致的异常重启。 修复main.proxy_connect缓冲区溢出。 修复插件可能内存申请失败导致的异常重启。 2022-06-01 修复社区innodb_row_lock_current_waits统计不准确的问题。 2021-08-07 新特性 支持数据库添加备注功能。 系统库防止被DDL修改。 升级openssl,jemalloc开源组件。 修复问题 修复修改密码可能会导致同步断开的问题。 修复审计日志错误写入其他文件的问题。 2021-04-13 修复由于回放保序导致备机小概率复制中断的问题。 内核版本升级到5.6.51。 安全加固 社区MySQL 5.6版本补丁不再发布,该版本的漏洞补丁服务也不再发布。 2021-01-26 新特性 支持在代理情况下显示真实的客户端地址。 修复问题 修复执行select 1 for update报语法错误问题。 全量SQL采集性能优化。 2020-12-31 重构SQL限流功能,提高易用性。 2020-11-06 内核版本升级到5.6.50。 2020-09-23 支持SQL限流,业务高峰期可以限制特定SQL的执行频率。 2020-08-03 内核版本升级到5.6.49。 2020-07-09 支持本地盘磁盘日志切换。 支持在错误日志中记录用户的操作历史。 2020-05-30 bufferpool内存初始化模块优化,提高初始化效率。 2020-04-30 修复用户低概率连接数据库失败问题。 2020-03-30 支持全量SQL采集功能。 编译器升级到7.3。 内核版本升级到5.6.47。 2020-02-15 复制双通道:新增复制状态通道,准确判断主库崩溃时的复制状态。确保事务不丢失。 Optimized ROW_IMAGE模式:缩减binlog大小,同时支持迁移,SQL闪回等场景。 2019-12-15 长事务:通过show processlist获取事务的执行时间Trx_Executed_Time。 Online扩展String字段长度:扩展VARCHAR类型字段长度从COPY模式默认变为INPLACE模式。详见在线扩展varchar类型字段。 InnoDB死锁信息丰富:通过show engine innodb status命令可以观察到InnoDB层死锁发生时完整的现场信息。 2019-10-15 内核版本升级到5.6.45。 用户线程内存使用信息、CPU时间使用信息,用户通过show full processlist进行查询。 KILL空闲事务:通过设置超时时间,自动KILL长时间空闲事务。详见主动终止空闲事务。 2019-08-15 Jemalloc内存管理:替换Glibc内存管理模块,降低内存占用,内存分配效率更高效。 2019-06-15 内核版本升级到5.6.43。 支持审计功能。 2019-05-15 修复特定场景主备复制时延“Seconds_Behind_Master”不准确的问题。 修复“SQL_MODE”为“PAD_CHAR_TO_FULL_LENGTH”时的主备复制异常问题。 2019-01-15 修复只读执行flush操作后导致主备不一致,复制中断的问题。 修复REPAIR,OPTIMIZE等语句导致备机复制线程卡住问题。 修复grant select(column_name) 语句复制线程报错问题。 2018-11-15 内核版本升级到5.6.41。 GTID开启时支持事务中创建和删除临时表。 支持表级别MTS并行回放。 2018-07-15 新特性 内核版本升级到5.6.40。 支持线程池。详见连接线程池。 支持 CTS 语法:支持create table xx select语法。 修复以下问题 修复binlog和relay log名依赖PID文件名的问题。 修复“relay_log_basename”变量空指针导致备机卡住的问题。 修复force index语法在group_by xx order_by xx limit n1,n2 场景下失效的问题。
  • RDS for MySQL 5.7 表2 云数据库 RDS for MySQL 5.7版本说明 日期 特性描述 2024-04-11 内核版本升级到5.7.44。 具体修改点同社区版一致,详见社区5.7.44版本发布说明。 2023-12-01 新特性及性能优化 升级到5.7.43版本。 SQL限流功能变化:所有账户当前都会被限流(之前的行为:对root不限流);如需设定不限流的账户请联系客服。 新增information_schema.rds_sql_filter_info,可以查看SQL限流功能的当前并发数和历史拦截数。 修复问题 修复了社区审计日志插件不记录prepare协议语句的问题。 2023-09-01 5.7.41版本更新以下内容: 新特性及性能优化 优化了SQL限流功能。 优化了jemalloc组件释放内存缓慢,导致OOM的行为。 修复问题 修复了社区审计日志内存泄漏、线程挂住的问题。 修复了社区间隙锁范围过大的问题。 2023-06-28 新特性及性能优化 升级到5.7.41版本。 增加安全编译选项。 修复问题 修复参考表添加索引与另一张表添加外键并发执行时可能出现的复制异常。 修复删除外键表后再删除子表时可能出现的复制异常。 安全加固 解决安全漏洞:CVE-2023-21963、CVE-2022-32221、CVE-2023-21840、CVE-2022-2097、CVE-2022-21617、CVE-2022-21608、CVE-2022-21592、CVE-2022-21589、CVE-2022-1292、CVE-2022-27778、CVE-2018-25032、CVE-2022-21515。 2022-09-09 新特性及性能优化 升级到5.7.38版本。 升级编译器到GCC 10.3。 KILL会话支持per thread连接方式。 慢日志的阈值可考虑等锁耗时。 ALT功能安全加固。 修复问题 增强分布式XA事务主库崩溃恢复安全。 修复开启proxy可能导致的异常重启。 修复插件可能内存申请失败导致的异常重启。 安全加固 解决安全漏洞:CVE-2022-21454、CVE-2022-21417、CVE-2022-21427、CVE-2022-21451、CVE-2022-21444、CVE-2022-21460。 2022-06-01 新特性及性能优化 内核版本升级到5.7.37。 升级编译器到GCC 9.3。 升级openssl、curl开源组件。 修复问题 修复单个超大Binlog可能导致的复制中断问题。 修复slave并发回放grant可能导致的异常重启的问题。 修复隐藏自增键可能导致的复制中断问题。 修复虚拟字段表在ROLLBACK时可能异常重启的问题。 修复加密表在recovery异常重启问题。 修复Seconds Behind Master特定场景不准确问题。 安全加固 解决安全漏洞:CVE-2022-21367、CVE-2022-21304、CVE-2022-21344。 2022-01-26 新特性及性能优化 支持隐藏自增键特性。 修复问题 修复XA事务重复提交可能导致复制异常问题。 修复社区innodb_row_lock_current_waits统计不准确的问题。 2021-11-26 新特性及性能优化 全量SQL放开单条记录长度限制。 RDS for MySQL透明应用连续性(ALT)特性第一期。 修复问题 修复线程池极端场景的内存问题。 修复XA事务备机回放概率性卡住。 2021-08-07 新特性及性能优化 线程池静态连接,提高性能。 开启PGO(Profile-Guided Optimization)编译优化。 优化MySQL HASH算法。 支持数据库添加备注功能。 系统库防止被DDL修改。 在errlog中提供IO延迟信息。 支持minidump。 内核版本升级到5.7.33。 升级openssl,jemalloc,curl开源组件。 修复问题 修复由于回放保序导致备机小概率复制中断的问题。 修复XA事务在binlog rotate后可能异常重启的问题。 修复全量SQL可能存在未记录预编译SQL操作类型的问题。 修复flush privieges操作的executed time统计错误的问题。 修复审计日志错误写入其他文件的问题。 安全加固 解决安全漏洞:CVE-2021-2011、CVE-2021-2178、CVE-2021-2202。 2021-04-13 修复XA事务在数据库异常重启后可能发生丢失的问题。 优化自适应HASH分割算法。 内核版本升级到5.7.32。 2021-01-26 新特性 支持在代理情况下显示真实的客户端地址。 修复问题 全量SQL采集性能优化。 修复revoke权限可能导致主备权限不一致的问题。 回合8.0中对Instant add column的优化。 2020-12-31 性能优化 优化慢日志额外信息的采集效率。 升级编译器至GCC 9。 修复问题 修复XA事务回滚可能会导致备机复制中断问题。 2020-12-01 减少fil_sys互斥锁之间的冲突频率。 2020-11-06 新特性 内存申请编译器优化。 添加utf8优化对非ARM平台的支持。 修复问题 修复微秒计时器中gettimeofday多线程导致计时错误问题。 2020-09-21 内核版本升级到5.7.31。 支持SQL限流,业务高峰期可以限制特定SQL的执行频率。 2020-08-03 优化内核性能。 支持回收站。 增强本地盘清理数据可靠性。 2020-07-09 优化内核性能。 支持在错误日志中记录用户的操作历史。 提高XA事务的稳定性。 2020-06-30 优化内核性能。 支持本地盘磁盘日志切换。 bufferpool内存初始化模块优化,提高初始化效率。 提升ARM上部分操作的线程安全性。 2020-05-30 新特性 支持index hint功能。 支持抓取全量SQL日志。 修复以下问题 修复用户低概率连接数据库失败问题。 2020-04-30 优化内核性能。 2020-03-30 内核版本升级到5.7.29。 优化内核性能。 支持线程池统计IO waits事件。 2020-02-15 复制双通道:新增复制状态通道,准确判断主库崩溃时的复制状态,确保事务不丢失。 Optimized ROW_IMAGE模式:缩减binlog大小,同时支持迁移,SQL闪回等场景。 2019-12-15 DDL操作进度:通过“information_schema.innodb_alter_table_progress”获取添加列或添加索引操作的进度信息。详见DDL进度显示。 长事务:通过show processlist获取事务的执行时间Trx_Executed_Time。 Online扩展string字段长度:扩展varchar类型字段长度从COPY模式默认变为INPLACE模式。详见在线扩展varchar类型字段。 InnoDB死锁信息丰富:通过show engine innodb status可以观察到InnoDB层发生死锁情况时完整的现场信息。 2019-10-15 性能优化 ARM内核版本上线,该内核基于华为云鲲鹏服务器。 新特性 内核版本升级到5.7.27。 快速加列:表可以快速添加列,不拷贝数据,不占用磁盘空间和磁盘IO,业务高峰期可以实时变更。 MDL锁视图:通过“information_schema.metadata_lock_info”获取线程持有或等待的MDL锁信息。详见MDL锁视图。 2019-08-15 Jemalloc内存管理:替换Glibc内存管理模块,降低内存占用,内存分配效率更高效。 2019-06-15 内核版本升级到5.7.25。 2019-05-15 新特性 备库安全极速模式:在备库“sync_binlog”和“innodb_flush_log_at_trx_commit”为非1配置下,保证备库crash safe数据安全。sysbench高并发纯写模式下,主备复制延迟一直基本为0。 修复以下问题 修复“relay_log_recovery ”=“ON”时,特定场景Kill备库后无法重启的问题。 修复“SQL_MODE”为“PAD_CHAR_TO_FULL_LENGTH”时,主备复制异常的问题。 修复“performance_schema”重复统计错误的问题。 修复对“Performance_schema”中关于复制信息的表进行order by查询时,返回为空的问题。 2019-01-15 修复只读执行flush操作后导致主备不一致,复制中断的问题。 修复REPAIR,OPTIMIZE等语句导致备机复制线程卡住问题。 2018-11-15 内核版本升级到5.7.23。 GTID开启时支持事务中创建和删除临时表。 支持表级别MTS并行回放。 2018-07-15 内核版本升级到5.7.22。 支持线程池。详见连接线程池。 支持CTS语法:支持create table xx select语法。 算子下推:聚合算子下推到存储引擎层,提升count(),sum()执行速度。 KILL空闲事务:通过设置超时时间,自动KILL长时间空闲事务。详见主动终止空闲事务。 用户线程内存使用信息、CPU时间使用信息,用户通过show full processlist进行查询。
  • RDS for MySQL 8.0 表1 云数据库 RDS for MySQL 8.0版本说明 日期 特性描述 2023-12-01 8.0.28版本更新以下内容: 新特性及性能优化 SQL限流功能变化:所有账户当前都会被限流(之前的行为:对root不限流);如需设定不限流的账户请联系客服。 新增information_schema.rds_sql_filter_info,可以查看SQL限流功能的当前并发数和历史拦截数。 修复问题 修复了社区审计日志插件不记录prepare协议语句的问题。 2023-09-01 内核版本升级到8.0.28。 新特性及性能优化 优化了SQL限流功能。 优化了大文件异步Purge的性能。 修复问题 引入社区更高版本bugfix。 修复了社区并行DDL导致的数据不一致问题。 修复了社区审计日志内存泄漏、线程挂住的问题。 2023-03-15 8.0.25版本更新以下内容: 新特性及性能优化 优化了超大SQL审计日志的打印。 强化了内核日志打印的安全性。 修复问题 修复并发实例DDL和DML操作可能导致异常重启问题。用户不再有权限赋予connection_admin权限。 2022-09-09 8.0.25版本更新以下内容: 新特性及性能优化 KILL会话支持per thread连接方式。 Performance Schema使用增加内存限制。 优化特定场景下全量SQL的性能。 优化特定场景下internal_tmp_mem_storage_engine为memory引擎的性能问题。 升级编译器到GCC 10.3。 修复问题 修复临时文件写入可能报错的问题。 修复CTE查询返回结果不符合预期的问题。 安全加固 解决安全漏洞:CVE-2021-2417、CVE-2021-2339、CVE-2021-2425、CVE-2021-2426、CVE-2021-2427、CVE-2021-2424、CVE-2021-2383、CVE-2021-2384、CVE-2021-2410。 2022-06-01 新特性及性能优化 内核版本升级到8.0.25。 支持SQL限流。 升级编译器到GCC 9.3。 修复问题 修复单个超大Binlog可能导致的复制中断问题。 修复社区innodb_row_lock_current_waits统计不准确的问题。 修复使用blob字段可能导致的异常重启问题。 安全加固 解决安全漏洞:CVE-2021-2307、CVE-2021-2180、CVE-2021-2194。 2021-08-07 新特性及性能优化 线程池静态连接,提高性能。 开启PGO(Profile-Guided Optimization)编译优化。 优化MySQL HASH算法。 支持数据库添加备注功能。 系统库防止被DDL修改。 添加参数innodb_total_tablespaces用于统计innodb表空间数量。 在i_s中提供innodb锁视图。 升级openssl,jemalloc,curl开源组件。 修复问题 修复XA事务在binlog rotate后可能异常重启的问题。 修复全量SQL未记录预编译SQL操作类型的问题。 修复flush privieges操作的executed time统计错误的问题。 修复审计日志错误写入其他文件的问题。 2021-04-13 修复XA事务在数据库异常重启后可能发生丢失的问题。 优化自适应HASH分割算法。 内核版本升级到8.0.21。 安全加固 解决安全漏洞:CVE-2020-14697、CVE-2020-14680、CVE-2020-14678、CVE-2020-14663、CVE-2021-2020、CVE-2020-14619、CVE-2020-14591、CVE-2020-14576、CVE-2020-14539。 2021-01-26 SQL限流特性性能优化。 全量SQL采集性能优化。 2020-12-31 性能优化 升级编译器到GCC 9。 2020-12-01 性能优化 优化慢日志额外信息的采集效率。 修复以下问题 修复XA事务回滚可能会导致备机复制中断问题。 2020-11-06 修复问题 修复微秒计时器中gettimeofday多线程导致计时错误问题。 2020-09-21 支持在错误日志中记录详细的连接断开信息。 支持index hint功能。 2020-08-03 显示大事务执行时间和等待时间。 为管理用户使用独立的连接控制。 支持SQL限流,业务高峰期可以限制特定SQL的执行频率。 优化内核性能。 2020-06-19 内核版本升级到8.0.20。 优化内核性能。 2020-02-15 RDS for MySQL 8.0版本正式商用。 ARM内核版本上线,该内核基于华为云鲲鹏服务器。 2019-12-15 内核版本升级到8.0.17。 并行创建索引:并行创建索引速度最快提升2.5倍。 2019-10-15 修复“SQL_MODE”为“PAD_CHAR_TO_FULL_LENGTH”时的主备复制异常问题。 2019-09-15 支持线程池。详见连接线程池。 升级Openssl版本至1.1.1a。 支持CTS语法:支持create table xx select语法。 用户线程内存使用信息、CPU时间使用信息,您可以通过show full processlist进行查询。
  • RDS for MySQL 5.6 表3 云数据库 RDS for MySQL 5.6版本说明 日期 特性描述 2023-09-01 5.6.51版本更新以下内容: 新特性及性能优化 优化了SQL限流功能。 修复问题 修复了社区审计日志线程挂住的问题。 2023-03-15 5.6.51版本更新以下内容: 新特性及性能优化 优化了超大SQL审计日志的打印。 强化了日志打印的安全性。 修复问题 修复参考表添加索引与另一张表添加外键并发执行时可能出现的复制异常。 2022-09-09 新特性及性能优化 KILL会话支持per thread连接方式。 修复问题 修复开启proxy可能导致的异常重启。 修复main.proxy_connect缓冲区溢出。 修复插件可能内存申请失败导致的异常重启。 2022-06-01 修复社区innodb_row_lock_current_waits统计不准确的问题。 2021-08-07 新特性 支持数据库添加备注功能。 系统库防止被DDL修改。 升级openssl,jemalloc开源组件。 修复问题 修复修改密码可能会导致同步断开的问题。 修复审计日志错误写入其他文件的问题。 2021-04-13 修复由于回放保序导致备机小概率复制中断的问题。 内核版本升级到5.6.51。 安全加固 社区MySQL 5.6版本补丁不再发布,该版本的漏洞补丁服务也不再发布。 2021-01-26 新特性 支持在代理情况下显示真实的客户端地址。 修复问题 修复执行select 1 for update报语法错误问题。 全量SQL采集性能优化。 2020-12-31 重构SQL限流功能,提高易用性。 2020-11-06 内核版本升级到5.6.50。 2020-09-23 支持SQL限流,业务高峰期可以限制特定SQL的执行频率。 2020-08-03 内核版本升级到5.6.49。 2020-07-09 支持本地盘磁盘日志切换。 支持在错误日志中记录用户的操作历史。 2020-05-30 bufferpool内存初始化模块优化,提高初始化效率。 2020-04-30 修复用户低概率连接数据库失败问题。 2020-03-30 支持全量SQL采集功能。 编译器升级到7.3。 内核版本升级到5.6.47。 2020-02-15 复制双通道:新增复制状态通道,准确判断主库崩溃时的复制状态。确保事务不丢失。 Optimized ROW_IMAGE模式:缩减binlog大小,同时支持迁移,SQL闪回等场景。 2019-12-15 长事务:通过show processlist获取事务的执行时间Trx_Executed_Time。 Online扩展String字段长度:扩展VARCHAR类型字段长度从COPY模式默认变为INPLACE模式。详见在线扩展varchar类型字段。 InnoDB死锁信息丰富:通过show engine innodb status命令可以观察到InnoDB层死锁发生时完整的现场信息。 2019-10-15 内核版本升级到5.6.45。 用户线程内存使用信息、CPU时间使用信息,用户通过show full processlist进行查询。 KILL空闲事务:通过设置超时时间,自动KILL长时间空闲事务。详见主动终止空闲事务。 2019-08-15 Jemalloc内存管理:替换Glibc内存管理模块,降低内存占用,内存分配效率更高效。 2019-06-15 内核版本升级到5.6.43。 支持审计功能。 2019-05-15 修复特定场景主备复制时延“Seconds_Behind_Master”不准确的问题。 修复“SQL_MODE”为“PAD_CHAR_TO_FULL_LENGTH”时的主备复制异常问题。 2019-01-15 修复只读执行flush操作后导致主备不一致,复制中断的问题。 修复REPAIR,OPTIMIZE等语句导致备机复制线程卡住问题。 修复grant select(column_name) 语句复制线程报错问题。 2018-11-15 内核版本升级到5.6.41。 GTID开启时支持事务中创建和删除临时表。 支持表级别MTS并行回放。 2018-07-15 新特性 内核版本升级到5.6.40。 支持线程池。详见连接线程池。 支持CTS语法:支持create table xx select语法。 修复以下问题 修复binlog和relay log名依赖PID文件名的问题。 修复“relay_log_basename”变量空指针导致备机卡住的问题。 修复force index语法在group_by xx order_by xx limit n1,n2 场景下失效的问题。
  • RDS for MySQL 5.7 表2 云数据库 RDS for MySQL 5.7版本说明 日期 特性描述 2024-04-11 内核版本升级到5.7.44。 具体修改点同社区版一致,详见社区5.7.44版本发布说明。 2023-12-01 新特性及性能优化 升级到5.7.43版本。 SQL限流功能变化:所有账户当前都会被限流(之前的行为:对root不限流);如需设定不限流的账户请联系客服。 新增information_schema.rds_sql_filter_info,可以查看SQL限流功能的当前并发数和历史拦截数。 修复问题 修复了社区审计日志插件不记录prepare协议语句的问题。 2023-09-01 5.7.41版本更新以下内容: 新特性及性能优化 优化了SQL限流功能。 优化了jemalloc组件释放内存缓慢,导致OOM的行为。 修复问题 修复了社区审计日志内存泄漏、线程挂住的问题。 修复了社区间隙锁范围过大的问题。 2023-06-28 新特性及性能优化 升级到5.7.41版本。 增加安全编译选项。 修复问题 修复参考表添加索引与另一张表添加外键并发执行时可能出现的复制异常。 修复删除外键表后再删除子表时可能出现的复制异常。 安全加固 解决安全漏洞:CVE-2023-21963、CVE-2022-32221、CVE-2023-21840、CVE-2022-2097、CVE-2022-21617、CVE-2022-21608、CVE-2022-21592、CVE-2022-21589、CVE-2022-1292、CVE-2022-27778、CVE-2018-25032、CVE-2022-21515。 2022-09-09 新特性及性能优化 升级到5.7.38版本。 升级编译器到GCC 10.3。 KILL会话支持per thread连接方式。 慢日志的阈值可考虑等锁耗时。 ALT功能安全加固。 修复问题 增强分布式XA事务主库崩溃恢复安全。 修复开启proxy可能导致的异常重启。 修复插件可能内存申请失败导致的异常重启。 安全加固 解决安全漏洞:CVE-2022-21454、CVE-2022-21417、CVE-2022-21427、CVE-2022-21451、CVE-2022-21444、CVE-2022-21460。 2022-06-01 新特性及性能优化 内核版本升级到5.7.37。 升级编译器到GCC 9.3。 升级openssl、curl开源组件。 修复问题 修复单个超大Binlog可能导致的复制中断问题。 修复slave并发回放grant可能导致的异常重启的问题。 修复隐藏自增键可能导致的复制中断问题。 修复虚拟字段表在ROLLBACK时可能异常重启的问题。 修复加密表在recovery异常重启问题。 修复Seconds Behind Master特定场景不准确问题。 安全加固 解决安全漏洞:CVE-2022-21367、CVE-2022-21304、CVE-2022-21344。 2022-01-26 新特性及性能优化 支持隐藏自增键特性。 修复问题 修复XA事务重复提交可能导致复制异常问题。 修复社区innodb_row_lock_current_waits统计不准确的问题。 2021-11-26 新特性及性能优化 全量SQL放开单条记录长度限制。 RDS for MySQL透明应用连续性(ALT)特性第一期。 修复问题 修复线程池极端场景的内存问题。 修复XA事务备机回放概率性卡住。 2021-08-07 新特性及性能优化 线程池静态连接,提高性能。 开启PGO(Profile-Guided Optimization)编译优化。 优化MySQL HASH算法。 支持数据库添加备注功能。 系统库防止被DDL修改。 在errlog中提供IO延迟信息。 支持minidump。 内核版本升级到5.7.33。 升级openssl,jemalloc,curl开源组件。 修复问题 修复由于回放保序导致备机小概率复制中断的问题。 修复XA事务在binlog rotate后可能异常重启的问题。 修复全量SQL可能存在未记录预编译SQL操作类型的问题。 修复flush privieges操作的executed time统计错误的问题。 修复审计日志错误写入其他文件的问题。 安全加固 解决安全漏洞:CVE-2021-2011、CVE-2021-2178、CVE-2021-2202。 2021-04-13 修复XA事务在数据库异常重启后可能发生丢失的问题。 优化自适应HASH分割算法。 内核版本升级到5.7.32。 2021-01-26 新特性 支持在代理情况下显示真实的客户端地址。 修复问题 全量SQL采集性能优化。 修复revoke权限可能导致主备权限不一致的问题。 回合8.0中对Instant add column的优化。 2020-12-31 性能优化 优化慢日志额外信息的采集效率。 升级编译器至GCC 9。 修复问题 修复XA事务回滚可能会导致备机复制中断问题。 2020-12-01 减少fil_sys互斥锁之间的冲突频率。 2020-11-06 新特性 内存申请编译器优化。 添加utf8优化对非ARM平台的支持。 修复问题 修复微秒计时器中gettimeofday多线程导致计时错误问题。 2020-09-21 内核版本升级到5.7.31。 支持SQL限流,业务高峰期可以限制特定SQL的执行频率。 2020-08-03 优化内核性能。 支持回收站。 增强本地盘清理数据可靠性。 2020-07-09 优化内核性能。 支持在错误日志中记录用户的操作历史。 提高XA事务的稳定性。 2020-06-30 优化内核性能。 支持本地盘磁盘日志切换。 bufferpool内存初始化模块优化,提高初始化效率。 提升ARM上部分操作的线程安全性。 2020-05-30 新特性 支持index hint功能。 支持抓取全量SQL日志。 修复以下问题 修复用户低概率连接数据库失败问题。 2020-04-30 优化内核性能。 2020-03-30 内核版本升级到5.7.29。 优化内核性能。 支持线程池统计IO waits事件。 2020-02-15 复制双通道:新增复制状态通道,准确判断主库崩溃时的复制状态,确保事务不丢失。 Optimized ROW_IMAGE模式:缩减binlog大小,同时支持迁移,SQL闪回等场景。 2019-12-15 DDL操作进度:通过“information_schema.innodb_alter_table_progress”获取添加列或添加索引操作的进度信息。详见DDL进度显示。 长事务:通过show processlist获取事务的执行时间Trx_Executed_Time。 Online扩展string字段长度:扩展varchar类型字段长度从COPY模式默认变为INPLACE模式。详见在线扩展varchar类型字段。 InnoDB死锁信息丰富:通过show engine innodb status可以观察到InnoDB层发生死锁情况时完整的现场信息。 2019-10-15 性能优化 ARM内核版本上线,该内核基于华为云鲲鹏服务器。 新特性 内核版本升级到5.7.27。 快速加列:表可以快速添加列,不拷贝数据,不占用磁盘空间和磁盘IO,业务高峰期可以实时变更。 MDL锁视图:通过“information_schema.metadata_lock_info”获取线程持有或等待的MDL锁信息。详见MDL锁视图。 2019-08-15 Jemalloc内存管理:替换Glibc内存管理模块,降低内存占用,内存分配效率更高效。 2019-06-15 内核版本升级到5.7.25。 2019-05-15 新特性 备库安全极速模式:在备库“sync_binlog”和“innodb_flush_log_at_trx_commit”为非1配置下,保证备库crash safe数据安全。sysbench高并发纯写模式下,主备复制延迟一直基本为0。 修复以下问题 修复“relay_log_recovery ”=“ON”时,特定场景Kill备库后无法重启的问题。 修复“SQL_MODE”为“PAD_CHAR_TO_FULL_LENGTH”时,主备复制异常的问题。 修复“performance_schema”重复统计错误的问题。 修复对“Performance_schema”中关于复制信息的表进行order by查询时,返回为空的问题。 2019-01-15 修复只读执行flush操作后导致主备不一致,复制中断的问题。 修复REPAIR,OPTIMIZE等语句导致备机复制线程卡住问题。 2018-11-15 内核版本升级到5.7.23。 GTID开启时支持事务中创建和删除临时表。 支持表级别MTS并行回放。 2018-07-15 内核版本升级到5.7.22。 支持线程池。详见连接线程池。 支持CTS语法:支持create table xx select语法。 算子下推:聚合算子下推到存储引擎层,提升count(),sum()执行速度。 KILL空闲事务:通过设置超时时间,自动KILL长时间空闲事务。详见主动终止空闲事务。 用户线程内存使用信息、CPU时间使用信息,用户通过show full processlist进行查询。
  • RDS for MySQL 8.0 表1 云数据库 RDS for MySQL 8.0版本说明 日期 特性描述 2023-12-01 8.0.28版本更新以下内容: 新特性及性能优化 SQL限流功能变化:所有账户当前都会被限流(之前的行为:对root不限流);如需设定不限流的账户请联系客服。 新增information_schema.rds_sql_filter_info,可以查看SQL限流功能的当前并发数和历史拦截数。 修复问题 修复了社区审计日志插件不记录prepare协议语句的问题。 2023-09-01 内核版本升级到8.0.28。 新特性及性能优化 优化了SQL限流功能。 优化了大文件异步Purge的性能。 修复问题 引入社区更高版本bugfix。 修复了社区并行DDL导致的数据不一致问题。 修复了社区审计日志内存泄漏、线程挂住的问题。 2023-03-15 8.0.25版本更新以下内容: 新特性及性能优化 优化了超大SQL审计日志的打印。 强化了内核日志打印的安全性。 修复问题 修复并发实例DDL和DML操作可能导致异常重启问题。用户不再有权限赋予connection_admin权限。 2022-09-09 8.0.25版本更新以下内容: 新特性及性能优化 KILL会话支持per thread连接方式。 Performance Schema使用增加内存限制。 优化特定场景下全量SQL的性能。 优化特定场景下internal_tmp_mem_storage_engine为memory引擎的性能问题。 升级编译器到GCC 10.3。 修复问题 修复临时文件写入可能报错的问题。 修复CTE查询返回结果不符合预期的问题。 安全加固 解决安全漏洞:CVE-2021-2417、CVE-2021-2339、CVE-2021-2425、CVE-2021-2426、CVE-2021-2427、CVE-2021-2424、CVE-2021-2383、CVE-2021-2384、CVE-2021-2410。 2022-06-01 新特性及性能优化 内核版本升级到8.0.25。 支持SQL限流。 升级编译器到GCC 9.3。 修复问题 修复单个超大Binlog可能导致的复制中断问题。 修复社区innodb_row_lock_current_waits统计不准确的问题。 修复使用blob字段可能导致的异常重启问题。 安全加固 解决安全漏洞:CVE-2021-2307、CVE-2021-2180、CVE-2021-2194。 2021-08-07 新特性及性能优化 线程池静态连接,提高性能。 开启PGO(Profile-Guided Optimization)编译优化。 优化MySQL HASH算法。 支持数据库添加备注功能。 系统库防止被DDL修改。 添加参数innodb_total_tablespaces用于统计innodb表空间数量。 在i_s中提供innodb锁视图。 升级openssl,jemalloc,curl开源组件。 修复问题 修复XA事务在binlog rotate后可能异常重启的问题。 修复全量SQL未记录预编译SQL操作类型的问题。 修复flush privieges操作的executed time统计错误的问题。 修复审计日志错误写入其他文件的问题。 2021-04-13 修复XA事务在数据库异常重启后可能发生丢失的问题。 优化自适应HASH分割算法。 内核版本升级到8.0.21。 安全加固 解决安全漏洞:CVE-2020-14697、CVE-2020-14680、CVE-2020-14678、CVE-2020-14663、CVE-2021-2020、CVE-2020-14619、CVE-2020-14591、CVE-2020-14576、CVE-2020-14539。 2021-01-26 SQL限流特性性能优化。 全量SQL采集性能优化。 2020-12-31 性能优化 升级编译器到GCC 9。 2020-12-01 性能优化 优化慢日志额外信息的采集效率。 修复以下问题 修复XA事务回滚可能会导致备机复制中断问题。 2020-11-06 修复问题 修复微秒计时器中gettimeofday多线程导致计时错误问题。 2020-09-21 支持在错误日志中记录详细的连接断开信息。 支持index hint功能。 2020-08-03 显示大事务执行时间和等待时间。 为管理用户使用独立的连接控制。 支持SQL限流,业务高峰期可以限制特定SQL的执行频率。 优化内核性能。 2020-06-19 内核版本升级到8.0.20。 优化内核性能。 2020-02-15 RDS for MySQL 8.0版本正式商用。 ARM内核版本上线,该内核基于华为云鲲鹏服务器。 2019-12-15 内核版本升级到8.0.17。 并行创建索引:并行创建索引速度最快提升2.5倍。 2019-10-15 修复“SQL_MODE”为“PAD_CHAR_TO_FULL_LENGTH”时的主备复制异常问题。 2019-09-15 支持线程池。详见连接线程池。 升级Openssl版本至1.1.1a。 支持CTS语法:支持create table xx select语法。 用户线程内存使用信息、CPU时间使用信息,您可以通过show full processlist进行查询。
  • 操作步骤 使用root账号登录Linux服务器。 在Linux服务器中,下载Linux环境app_publisher_x86_64_xxx.tar.gz(xxx为版本号)压缩包。 表1 app_publisher组件版本说明 堡垒机 版本 支持架构 app_publisher组件版本 下载地址 V3.3.26.0 X86和ARM V1.0.0 软件包下载地址 V3.3.30.0 X86和ARM V1.1.0 软件包下载地址 V3.3.38.0 X86 V1.2.0_CentOS7 软件包下载地址 ARM V1.2.0_UOS20 软件包下载地址 V3.3.40.0 X86 V1.3.0_CentOS7 软件包下载地址 ARM V1.3.0_UOS 软件包下载地址 V3.3.43.0 X86 V1.4.0_CentOS7 软件包下载地址 ARM V1.4.0_UOS 软件包下载地址 V3.3.46.0 X86 V1.5.0_CentOS7 软件包下载地址 ARM V1.5.0_UOS 软件包下载地址 V3.3.52.0 X86 1.6.1_EulerOS 软件包下载地址 ARM 1.6.1_EulerOS 软件包下载地址 X86 1.6.1_CentOS7 软件包下载地址 ARM 1.6.1_UOS 软件包下载地址 在Linux服务器中,执行以下命令,将app_publisher_x86_64_xxx.tar.gz(xxx为版本号)压缩包进行解压。 # tar -xvf app_publisher_*.tar.gz # cd app_publisher 环境之前是否已安装过firefox应用发布服务器 是,执行以下命令,把之前安装的firefox docker镜像删除。 # docker rmi 127.0.0.1:5000/psm-firefox:0.2 删除后,继续执行步骤 5。 否,执行步骤 5。 执行以下命令,部署脚本。 # /bin/bash install.sh 执行以下命令,检查服务状态。 # service docker status active (running)表示应用发布服务器安装成功。 创建share目录(仅针对堡垒机V3.3.26.0版本)。 # mkdir /opt/autorun/share (可选)重启应用发布服务器。
  • 约束限制 添加的主机和应用资源数量总和不能超过资产数。 支持对Windows Server2008 R2及以上的Windows系统版本的应用进行管理。 支持对Centos7.9系统的Linux服务器的应用进行管理。 Linux服务器仅支持调用Firefox浏览器应用和达梦管理工具V8。 Linux服务器和堡垒机之间需要开通的端口号:2376和35000~40000,且端口号不可修改。 Linux服务器的密码请联系华为云技术支持获取。 添加应用发布前,需已添加应用服务器。 Edge浏览器应用不支持配置自动登录账户。
  • 示例二:按资源所属部门申请资源,建立分级流程工单 前提条件 已完成部门、用户、角色和资源等项的规划和设置。部门设置请参考部门,用户和角色设置请参考用户,资源设置请参考资源。 工单审批流程设置如表2所示,具体操作请参考工单配置。 表2 工单配置参数说明 参数 值 审批流程 分级流程 审批形式 多人审批 审批节点 用户所属部门-部门管理员 审批级数 3 审批流程 用户提起工单电子流,按资源所属部门申请访问资源。 镇管理员User D进行审批,审批通过则由县管理员User E进行下一环节的审批,审批不通过则工单被驳回。以此类推,直到市管理员User F审批通过后,用户即可获得相应的权限。审批的过程中任意一个环节驳回,则该工单审批不通过,用户不能获取相应的权限。 拥有admin管理员权限的账号可在任意节点审批或驳回任意工单,且结果为最终结果。
  • 示例三:建立固定流程的会签审批工单 前提条件 已完成部门、用户、角色和资源等项的规划和设置。部门设置请参考部门,用户和角色设置请参考用户,资源设置请参考资源。 工单审批流程设置如表3所示,具体操作请参考工单配置。 表3 工单配置参数说明 参数 内容 审批流程 固定流程 审批形式 会签审批 审批节点 3 签核流程 用户提起工单电子流,申请访问非用户所属部门的资源。 工程部管理员User B和User C均拥有审批权,两者都批准则该环节审批通过,任意一人驳回则该环节审批不通过。工程部管理员审批通过后,下一环节将由财务部管理员User D进行审批,以此类推,直到财务部管理员User E审批通过后,用户即可获得相应的权限。审批过程中任意一个环节驳回,则该工单审批不通过,用户不能获取相应的权限。 拥有admin管理员权限的账号可在任意节点审批或驳回任意工单,且结果为最终结果。
  • 示例一:按用户所属部门申请资源,建立分级流程工单 前提条件 已完成部门、用户、角色和资源等项的规划和设置。部门设置请参考部门,用户和角色设置请参考用户,资源设置请参考资源。 工单审批流程设置如表1所示,具体操作请参考工单配置。 表1 工单配置参数说明 参数 值 审批流程 分级流程 审批形式 多人审批 审批节点 用户所属部门-部门管理员 审批级数 3 审批流程 用户提起工单电子流,按用户所属部门申请访问资源。 大队管理员User A和User B均拥有审批权,只要任意一人批准,则该环节审批通过,任意一人驳回,则该环节审批不通过。大队管理员审批通过后,下一环节将由村管理员User C进行审批。以此类推,直到镇管理员User D审批通过后,用户即可获得相应的权限。审批过程中任意一个环节驳回,则该工单审批不通过,用户不能获得相应的权限。 拥有admin管理员权限的账号可在任意节点审批或驳回任意工单,且结果为最终结果。
  • 前提条件 已获取证书,并下载签发证书。 推荐您通过 云证书管理服务 (Cloud Certificate Manager,CCM)购买签发证书,CCM证书申请流程请参见CCM快速入门,下载签发证书后,并转换证书格式为jks格式,具体的操作请参见转换证书格式。 该证书文件大小不超过20KB,且证书文件包含证书密码。 上传证书绑定的域名已解析到绑定 云堡垒机 实例的弹性公网IP,具体的操作请参见增加A类型记录集。 用户已获取“系统”模块管理权限。
  • 后续管理 数据库控制策略创建完成后,可在策略列表页面,管理已创建策略,包括管理关联用户或资源、删除策略、启停策略、策略排序等。 若需补充关联用户或资源,可单击“关联”,快速关联用户、用户组、资源账户、账户组。 若需删除策略,可选择目标策略,单击“删除”,立即删除策略。 若需禁用策略授权,可勾选一个或多个“已启用”状态的策略,单击“禁用”,策略状态变更为“已禁用”,策略授权立即失效。 若需排序策略优先等级,可选中策略行上下拖动策略,改变策略排序。
  • 修改个人密码 登录云堡垒机系统。 选择右上角用户名,单击“个人中心”,进入个人中心管理页面 图1 个人中心页面 在“基本信息”页签,单击“修改密码”,弹出修改密码窗口。 图2 修改个人密码 输入当前密码,并自定义新密码。 新密码要求: 长度范围:8~32个字符,不能低于8个字符,且不能超过32 个字符。 规则要求:可设置英文大写字母(A~Z)、英文小写字母(a~z)、数字(0~9)和特殊字符(!@$%^-_=+[{}]:,./?~#*),且需同时至少包含其中三种。 不能包含用户名或倒序的用户名。 单击“确定”,返回个人基本信息页面。 退出登录,再次登录新密码即生效。
  • 背景介绍 为加强用户账号登录管理,云堡垒机支持通过配置登录开启或关闭多因子认证、设置账号使用有效期、设置登录时段限制、设置登录IP地址限制、设置登录MAC地址限制,管理用户账号登录权限,有效降低用户账号泄露等导致的安全风险。 多因子认证:指开启多因子认证后,用户登录时通过发送短信口令、动态令牌、USBKey等二次认证用户身份。 有效期:指用户账号的使用有效期,仅在限定时间内可登录。 登录时段限制:指用户账号限定登录星期和时刻。 登录IP地址限制:指限制指定来源IP地址的用户登录。 登录MAC地址限制:指在局域网内限制指定MAC地址的用户登录。
  • 约束限制 为正常使用“手机令牌”多因子认证,需确保系统时间与绑定手机时间一致,精确到秒。否则使用手机令牌登录时,口令将验证失败。 系统默认内置短信网关有短信发送频率和条数限制,为避免对“手机短信”多因子认证登录造成影响,可设置“自定义”短信网关,详情请参见短信网关配置。 由于MAC地址属于数据链路层,用于局域网寻址。MAC地址在传输过程中经过路由或主机,地址会发生变化,因此“登录MAC地址限制”仅在局域网生效。 若admin用户配置了多因子认证,无法登录系统取消多因子认证配置,请联系技术支持。
  • 操作步骤 访问OrgID。 输入帐号名和密码,单击“登录”。 通过管理员手动添加组织成员的方式创建的帐号,首次登录需要设置新密码,如图1所示。设置密码后,下次才可使用帐号名密码登录。如忘记密码,请单击登录页面的“忘记密码”,并根据界面提示找回密码。 图1 设置密码 设置的密码需要满足以下规则: 至少8个字符。 至少包含字母和数字,不能包含空格。 阅读并同意“管理式华为帐号服务协议”。 选择授权给OrgID的信息,单击“授权”。 图2 华为帐号授权 登录后进入组织的用户中心首页。
共100000条