报错提示:
[SSTUploadHomeworkPictureManager.m 243]上传文件进度: 1.000000 2020-07-29 10:33:13.703696+0800 小塾学伴教师[3322:912420] dictionaryWithParser YES [SSTUploadHomeworkPictureManager.m 278]upload object success! --- result: https://xtimg.sharingschool.com/2020/07/29/20200729372166664733597696.jpg 2020-07-29 10:33:18.840108+0800 小塾学伴教师[3322:912425] 3322: CFNetwork internal error (0xc01a:/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/CFNetwork/CFNetwork-1125.2/Loading/URLConnectionLoader.cpp:269) 2020-07-29 10:33:18.841362+0800 小塾学伴教师[3322:912425] 3322: CFNetwork internal error (0xc01a:/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/CFNetwork/CFNetwork-1125.2/Loading/URLConnectionLoader.cpp:269)
解决办法:
阿里云OSS ${bucket}、${object}、${etag}、${size}、${mimeType} 这几个是系统变量,是回调给你服务端的时候传递回来的参数,用 ${} 圈起来是占位用的,你收到的时候已经被替换成实际值了。 ${x:var1}、${x:va2} 是自定义变量,是除了上述系统变量之外根据你业务需求自定义的参数,var1、var2 是键名,不是值。你应该起叫 .....&my_name=${x:var1}&my_age=${x:var2},然后在下面的请求正文里加入: { "x:var1": "张三", "x:var2": 24} 这样你服务端收到回调时的 my_name、my_age 两个参数的值就是“张三”、“24”。
有关 Callback 的详细文档:https://help.aliyun.com/document_detail/31989.html?spm=5176.doc31853.2.2.aYia1U
CallbackJson的值示例如下:
{
"callbackUrl" : "http://abc.com/test.php",
"callbackHost" : "oss-cn-hangzhou.aliyuncs.com",
"callbackBody" : "{\"bucket\":${mimeType}, \"object\":${object},\"size\":${size},\"mimeType\":${mimeType},\"my_var\":${x:my_var}}",
"callbackBodyType" : "application/json"
}
或
{
"callbackUrl" : "http://abc.com/test.php",
"callbackBody" : "bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}"
}
示例:
NSString *paramBody = @"{\"vipId\":${x:vipId},\"courseName\":${x:courseName},\"derverFileId\":${x:derverFileId},\"fileKeys\":${x:fileKeys}}"; // 正确的 request.callbackParam = @{@"callbackUrl":[NSString stringWithFormat:@"https://xt.sharingschool.com/sz/api/teacher/library/V2/uploadPicture?accessToken=%@",[SSUtility getTeacherToken]], @"callbackBody":paramBody, @"callbackBodyType":@"application/json"}; // library/V2 request.callbackVar = @{@"x:vipId":img.vipId, @"x:courseName":img.course, @"x:fileKeys":uploadImgPath, @"x:derverFileId":img.derverFileId};