开发者社区 问答 正文

OSSPutObjectRequest 上传文件报session无效

1.使用OSSPutObjectRequest上传文件时
返回的错误信息:

error: Error Domain=com.aliyun.oss.clientError Code=9 "(null)" UserInfo={ErrorMessage=Catch exception - Task created in a session that has been invalidated}

2.使用
OSSResumableUploadRequest上传文件,不会出现上述错误,可以成交上传;

备:两种上传模式前获取STS都是同一个函数,STS是正常的。


展开
收起
wine 2018-09-17 19:08:47 5270 分享 版权
1 条回答
写回答
取消 提交回答
  • 一个喜欢在各个技术领域到处浪的人

    我也踩坑了。要确保 OSSClient 的实例不能释放。

    // 需要由全局变量来hold住,不然立刻就释放了,task会error
    g_client = [[OSSClient alloc] initWithEndpoint:kEndpoint credentialProvider:credential];
    OSSTask *task = [g_client putObject:request];
    [task continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
        if (task.error) {
            onFinished(task.error.localizedDescription);
        } else {
            onFinished(nil);
        }
      return nil;
    }];
    
    2019-09-23 16:08:14
    赞同 展开评论
问答分类:
问答地址: