今日份分享——阿里云对象存储OSS
参考阿里云文档链接:https://help.aliyun.com/product/31815.html?spm=a2c4g.750001.3.1.1b847b13OoUaDA
根据项目的需求上传多张图片,语音,视频
上传可以直接上传OSSData,或者通过NSURL上传一个文件
在项目中,我上传的格式是OSSData。
//object是我们自己的服务器返回的内容 ,内容由服务器在阿里云配置的参数返回的
id<OSSCredentialProvider> credential = [[OSSStsTokenCredentialProvider alloc] initWithAccessKeyId:object[@"data"][@"accesskey"] secretKeyId:object[@"data"][@"accesskeysecret"] securityToken:object[@"data"][@"securitytoken"]];
OSSClient *client = [[OSSClient alloc] initWithEndpoint:object[@"data"][@"endpoint"] credentialProvider:credential];
OSSPutObjectRequest * put = [OSSPutObjectRequest new];
put.bucketName = object[@"data"][@"bucketname"];
//imageName 这个参数是由服务器在阿里云配置的文件目录拼接上上传文件的名字(可自定义,确保文件的唯一性)
put.objectKey = imageName;
put.uploadingData = data;
OSSTask * putTask = [client putObject:put];
[putTask waitUntilFinished]; // 阻塞直到上传完成
if (!putTask.error) {
//逻辑上的处理 主线程中刷新界面
} else {
//错误
}
上传的核心代码就是上面所述。
注意点:因为是同步上传,很容易阻塞线程,所以我在上传的时候开辟了新的线程操作。
写的不完整,望多交流。