更新时间:2023-11-09 GMT+08:00
OBS客户端通用示例
调用OBSClient类的相关接口时,没有错误产生则说明调用成功;当有错误产生时,则说明操作失败。以下代码展示了使用OBS客户端的通用方式:
NSString *endPoint = @"your-endpoint"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量AccessKeyID和SecretAccessKey。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/intl/zh-cn/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 OBSClient *client = [[OBSClient alloc] initWithConfiguration:conf]; // 创建列举对象请求 OBSListBucketsRequest *request = [OBSListBucketsRequest new]; // 列举对象 OBSBFTask *task = [client listBuckets:request completionHandler:^(OBSListBucketsResponse *response, NSError *error) { if(error){ // 处理错误 }else{ // 获取结果 for(OBSBucket *bucket in response.bucketsList){ NSLog(@"bucketname=%@",bucket.name); } } }]; [task waitUntilFinished];
- 在调用OBSClient类的相关接口时,如果将Client声明为局部变量,则应该通过对请求任务执行waitUntilFinished操作以保证Client在请求任务执行期间始终有效,否则可能造成网络请求失败,程序崩溃的问题。
父主题: 快速入门