IOS七牛上傳錄音

上傳圖片之前說過,但是今天在上傳錄音時遇到問題。還是用putData 的方式 發現傳上去并不能播放。

需要將key加后綴.mp3即可

上傳時調用

    NSString *key = [NSString stringWithFormat:@"%@.mp3",self.qiniuImageName];
    NSData *urlData = [NSData dataWithContentsOfURL:urlPlay];
    
    [self.upManager putData:urlData key:key token:self.token complete:^(QNResponseInfo *info, NSString *key, NSDictionary *resp) {
        
        NSLog(@"七牛錯誤信息%@", info.error);
        NSLog(@"七牛返回信息%@", resp);
        if ([resp objectForKey:@"key"] != nil ||![[resp objectForKey:@"key"] isEqualToString:@""]) {
       
        }
        
    } option:nil];

這樣就好了

附上客戶端直傳方式代碼

需要導入

  • <CommonCrypto/CommonCrypto.h>
  • "QN_GTM_Base64.h"
- (NSString *)makeToken:(NSString *)accessKey secretKey:(NSString *)secretKey
{
    const char *secretKeyStr = [secretKey UTF8String];
    
    NSString *policy = [self marshal];
    
    NSData *policyData = [policy dataUsingEncoding:NSUTF8StringEncoding];
    
    NSString *encodedPolicy = [QN_GTM_Base64 stringByWebSafeEncodingData:policyData padded:TRUE];
    const char *encodedPolicyStr = [encodedPolicy cStringUsingEncoding:NSUTF8StringEncoding];
    
    char digestStr[CC_SHA1_DIGEST_LENGTH];
    bzero(digestStr, 0);
    
    
    CCHmac(kCCHmacAlgSHA1, secretKeyStr, strlen(secretKeyStr), encodedPolicyStr, strlen(encodedPolicyStr), digestStr);
    
    NSString *encodedDigest = [QN_GTM_Base64 stringByWebSafeEncodingBytes:digestStr length:CC_SHA1_DIGEST_LENGTH padded:TRUE];
    
    self.token = [NSString stringWithFormat:@"%@:%@:%@",  accessKey, encodedDigest, encodedPolicy];
    
    
    return self.token;//得到了token
}
- (NSString *)marshal
{
    time_t deadline;
    time(&deadline);//返回當前系統時間
    
    deadline += (self.expires > 0) ? self.expires : 3600; // +3600秒,即默認token保存1小時.
    
    
    NSNumber *deadlineNumber = [NSNumber numberWithLongLong:deadline];
    
    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
    
    [dic setObject:self.qiniuFilekey forKey:@"scope"];
    
    [dic setObject:deadlineNumber forKey:@"deadline"];
    
    
    NSString *json = [dic mj_JSONString];
    
    return json;
}
//生成uuid
- (NSString *)getUniqueStrByUUID
{
    CFUUIDRef    uuidObj = CFUUIDCreate(nil);//create a new UUID
    
    //get the string representation of the UUID
    
    NSString *str = (__bridge_transfer NSString *)CFUUIDCreateString(nil, uuidObj);
    
    CFRelease(uuidObj);
    
    return str ;
    
}

viewdidload調用

    self.qiniuImageName = [self getUniqueStrByUUID];
    self.qiniuFilekey = QINIUFOLDER;

    self.upManager = [[QNUploadManager alloc]init];
    [self makeToken:QINIUAk secretKey:QINIUSK];
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容