开发者社区> 问答> 正文

iOS上传图片

直接粘代码
OSSClient *client;

        NSString *endpoint = [NSString stringWithFormat:@"http://%@",token.host_name];
        //注意在控制台获取域名之后,要在前面加上http://,并去掉bucketName字段。例如从控制台获取域名为“<bucketName>.oss-cn-beijing.aliyuncs.com”,则hostId应为“http://oss-cn-beijing.aliyuncs.com
        id<OSSCredentialProvider> credential = [[OSSPlainTextAKSKPairCredentialProvider alloc] initWithPlainTextAccessKey:token.key_id secretKey:token.key_secret];
        
        client = [[OSSClient alloc] initWithEndpoint:endpoint credentialProvider:credential];
        //初始化client
        
        OSSPutObjectRequest * put = [OSSPutObjectRequest new];
        
        // 必填字段
        put.bucketName = token.host_name;
        put.objectKey = @"packagePass";
        UIImage *image = [UIImage imageNamed:@"packagePass"];
        
        
        //    put.uploadingFileURL = [NSURL fileURLWithPath:@"<filepath>"];
        put.uploadingData =  UIImagePNGRepresentation(image); // 直接上传NSData

        OSSTask * putTask = [client putObject:put];
        
        [putTask continueWithBlock:^id(OSSTask *task) {
            if (!task.error) {
                NSLog(@"upload object success!");
            } else {
                NSLog(@"upload object failed, error: %@" , task.error);
            }
            return nil;
        }];

就简单的上传但报如下错误

报错
upload object failed, error: Error Domain=com.aliyun.oss.serverError Code=-403 "(null)" UserInfo={__name=Error, HostId=vitabeedev.oss-cn-hangzhou.aliyuncs.com, Message=The OSS Access Key Id you provided does not exist in our records., OSSAccessKeyId=STS.sMk9KLTRyRhV7qsQ6hkn, Code=InvalidAccessKeyId, RequestId=56EA1CE305200A833146CABF}

展开
收起
vitabeetommy 2016-03-17 11:16:42 5766 0
0 条回答
写回答
取消 提交回答
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载