最近一段时间刚把ios的sdk研究了一下。先分享一下关于token的心得。很多人都在问token在ios如何得到,然后大神们的回答都很简短,可能很多人都不懂。经过我自己的尝试,我用更直白的话告诉大家如何获得token。大神们都说通过业务服务器,
其实就是在php服务器存有你的sk和ak,然后通过
Qiniu_SetKeys($accessKey, $secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$upToken = $putPolicy->Token(null);
最终传回token到ios端,然后声明一个
@property (retain, nonatomic)QiniuSimpleUploader *sUploader;
直接把传回的token赋值到
self.sUploader.token,
最后用
[self.sUploader uploadFile:_filePath key:_key extra:nil]
就可以完成上传,_key是最终存在空间内的文件名。
下面是我的问题:
请问各位大神预处理的话怎么修改,我看了一下api还有php的sdk,我的理解就是通过网络传输把persistentOps和persistentNotifyUrl这两个个参数传过去即可。
下面是我已经尝试了的。
原来httpclient和simpleupload文件里面uploadfild和uploadfilddata代码是
AFHTTPRequestOperation )uploadFile:(NSString )filePath key:(NSString *)key token:(NSString *)token
我后来只修改了成了
AFHTTPRequestOperation )uploadFile:(NSString )filePath key:(NSString )key token:(NSString *)token persistentOps:(NSString *) options persistentNotifyUrl :(NSString)back
相当于每个方法的input value我都加入了persistentOps和 persistentNotifyUrl。
同时在httpclient里面我也修改成了
NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; if (key && ![key isEqualToString:kQiniuUndefinedKey]) { parameters[@"key"] = key; } if (!key) { key = kQiniuUndefinedKey; } parameters[@"token"] = token; //新加入的 parameters[@"persistentOps"]=options; parameters[@"persistentNotifyUrl"]=back;
最后我在我的viewcontroller里面加了
[self.sUploader uploadFile:_filePath key:_key persistentOps:@"avthumb/mp4;avthumb/m3u8/segtime/15/preset/video_440k" persistentNotifyUrl :back extra:nil];
但是还是没有转码成功,求帮忙指点一下谢谢。
还有persistentNotifyUrl必须要什么形式的?
persistentOps,persistentNotifyUrl 这些是 uptoken 的一部分,客户端是没有权限设置的。