更新时间: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在请求任务执行期间始终有效,否则可能造成网络请求失败,程序崩溃的问题。
父主题: 快速入门