我把获取
OSSFederationToken的服务端程序关掉了,debug程序时, 确认:
credentialProvider的 cachedtoken为空,然后
初始化客户端
client
= [[
OSSClient
alloc
] initWithEndpoint
:
endPoint
credentialProvider
:credential2 clientConfiguration
:conf];
再执行上传动作,按理说 没有token,而执行上传
[
client
putObject
:put];的话:
putTask.
error
应该报错啊,现在是上传不成功,但是putTask.error为空,不报错,所以程序认为上传已经成功了,这个获取不到FederationToken导致上传失败的情况怎么handle呢? 请教各位大神帮忙解答,谢谢!
//上传文件
OSSPutObjectRequest
* put = [OSSPutObjectRequest
new
];
// required fields
put.
bucketName = bucketname;
put.
objectKey = [uploadarray
objectAtIndex:i];
NSString *photoname=[put.
objectKey
lastPathComponent];
put.
uploadingFileURL
= [
NSURL
fileURLWithPath
:[tempdir stringByAppendingPathComponent
:photoname]];
// optional fields
put.
uploadProgress = ^(
int64_t bytesSent,
int64_t totalByteSent,
int64_t totalBytesExpectedToSend) {
NSLog(
@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
};
put.
contentType =
@"";
put.
contentMd5 =
@"";
put.
contentEncoding =
@"";
put.contentDisposition
=
@""
;
OSSTask * putTask = [
client
putObject:put];
[putTask
waitUntilFinished];
//
[font='Heiti SC Light']阻塞直到上传完成
if (!putTask.
error) {
NSLog
(@"upload [font='Heiti SC Light']文件 %d success!"
,i);
//
[font='Heiti SC Light']上传成功,将文件
}
else {
NSLog
(@"upload [font='Heiti SC Light']文件 %d failed, error: %@"
,i, putTask.
error
);
uploadresult=
0;
break;
-------------------------
-------------------------
-------------------------
那问下,你说的 “获取OSSFederationToken的服务端程序关掉” 之后,确认[[OSSFederationCredentialProvider alloc] initWithFederationTokenGetter:^OSSFederationToken * {...} 的 OSSFederationToken Block一直返回nil吗?
可以加一句话打印下。我这边确认如果block返回nil,是会报错的。
-------------------------
麻烦确认下sdk版本
-------------------------
建议提交工单吧,把能复现的demo提交给客服处理。或者,把能复现的demo打包上传,这里贴链接我去下载来试一下。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。