aliyun / aliyun-oss-ios-sdk

iOS SDK for aliyun object storage service
Other
468 stars 320 forks source link

AliyunOSSSDK-iOS-Example[12593:4437583] Put image failed, Error Domain=com.aliyun.oss.clientError Code=1 "(null)" UserInfo={ErrorMessage=Can't get a federation token} #204

Open jiang6777 opened 5 years ago

jiang6777 commented 5 years ago

今天下午一直报这个错误,不知道什么原因,用Demo也请求不了。 这是我的配置文件:

define OSS_ACCESSKEY_ID @"LTAIYuewio25odEfz" // 子账号id

define OSS_SECRETKEY_ID @"SClF6UIQ1dmQ782d1nKov8CoGwIgpG" // 子账号secret

define OSS_BUCKET_PUBLIC @"log" // bucket名称

define OSS_BUCKET_PRIVATE @"log" // bucket名称

define OSS_ENDPOINT @"https://oss-cn-beijing.aliyuncs.com" // 访问的阿里云endpoint

define OSS_IMG_ENDPOINT @"https://oss-cn-beijing.aliyuncs.com" // 旧版本图片服务的endpoint

define OSS_MULTIPART_UPLOADKEY @"multipart_key" // 分片上传的object key

define OSS_RESUMABLE_UPLOADKEY @"resumable_key" // 断点续传的object key

define OSS_CALLBACK_URL @"http://oss-demo.aliyuncs.com:23450" // 对象上传成功时回调的业务服务器地址

define OSS_CNAME_URL @"http://www.cnametest.com/" // cname,用于替换bucket.endpoint的访问域名

define OSS_STSTOKEN_URL @"http://192.168.1.32:9999/queryOssToken" // sts授权服务器的地址

define OSS_IMAGE_KEY @"testImage.png" // 测试图片的名称

define OSS_DOWNLOAD_FILE_NAME @"OSS_DOWNLOAD_FILE_NAME" // 用于下载的object key

AppDelegate中的代码: id credentialProvider = [[OSSAuthCredentialProvider alloc] initWithAuthServerUrl:OSS_STSTOKEN_URL]; OSSClientConfiguration *cfg = [[OSSClientConfiguration alloc] init]; cfg.maxRetryCount = 3; cfg.timeoutIntervalForRequest = 15; cfg.isHttpdnsEnable = NO; cfg.crc64Verifiable = YES;

OSSClient *defaultClient = [[OSSClient alloc] initWithEndpoint:OSS_ENDPOINT credentialProvider:credentialProvider clientConfiguration:cfg];
[OSSManager sharedManager].defaultClient = defaultClient;

OSSClient *defaultImgClient = [[OSSClient alloc] initWithEndpoint:OSS_IMG_ENDPOINT credentialProvider:credentialProvider clientConfiguration:cfg];
[OSSManager sharedManager].imageClient = defaultImgClient;

OSSWrapper.m中的代码: _normalUploadRequest = [OSSPutObjectRequest new]; _normalUploadRequest.bucketName = OSS_BUCKET_PRIVATE; _normalUploadRequest.objectKey = @"sample";//@"OBJ/";//objectKey; _normalUploadRequest.uploadingFileURL = [NSURL fileURLWithPath:filePath]; _normalUploadRequest.isAuthenticationRequired = YES; _normalUploadRequest.uploadProgress = ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) { float progress = 1.f totalByteSent / totalBytesExpectedToSend; OSSLogDebug(@"上传文件进度: %f", progress); }; _normalUploadRequest.callbackParam = @{ @"callbackUrl": OSS_CALLBACK_URL, // callbackBody可自定义传入的信息 @"callbackBody": @"filename=${object}" }; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ OSSTask task = [[OSSManager sharedManager].defaultClient putObject:_normalUploadRequest]; [task continueWithBlock:^id(OSSTask *task) { dispatch_async(dispatch_get_main_queue(), ^{ if (task.error) { failure(task.error); } else { success(nil); } });

        return nil;
    }];
    [task waitUntilFinished];
});

求原因

pushuhengyang commented 5 years ago

sts授权服务器的地址

这个错误是token未获取成功 请检测sts授权服务器的地址以及数据返回是否正确 请参考https://help.aliyun.com/document_detail/31920.html?spm=a2c4g.11186623.6.1346.40c552afYUHQqA