我正在尝试将图像从我的Xcode项目上传到s3存储桶,这是第一次完全正常工作但在上传一个图像后,每次出现错误都会给我错误
AWSiOSSDK v2.4.12 [错误] AWSCredentialsProvider.m行:577 | __44- [AWSCognitoCredentialsProvider凭证] _block_invoke.353 |无法刷新。错误是[错误域= com.amazonaws.AWSCognitoIdentityErrorDomain Code = 10"(null)" UserInfo = {__ type = ResourceNotFoundException,message = IdentityPool' us-west-2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'找不到。}]
我正在使用的代码就是这个
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc]
initWithRegionType:AWSRegionUSEast1
identityPoolId:@"us-west-2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;
return YES;}
-(void)uplaodImageToS3 :(NSString *)userId
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"user_%@.png", userId]];
NSData *imageData = UIImagePNGRepresentation(uploadedImage);
[imageData writeToFile:path atomically:YES];
NSURL *url = [[NSURL alloc] initFileURLWithPath:path];
_uploadRequest = [AWSS3TransferManagerUploadRequest new];
_uploadRequest.bucket = @"dellonybucket";
_uploadRequest.ACL = AWSS3ObjectCannedACLPublicRead;
_uploadRequest.key = [NSString stringWithFormat:@"images/user_%@.png", userId];
_uploadRequest.contentType = @"image/png";
_uploadRequest.body = url;
__weak RegistrationViewController *weakSelf = self;
_uploadRequest.uploadProgress = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend){
dispatch_sync(dispatch_get_main_queue(), ^{
weakSelf.sizeUplaoded = totalBytesSent;
weakSelf.filesize = totalBytesExpectedToSend;
[weakSelf update];
});
};
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
[[transferManager upload:_uploadRequest]continueWithExecutor:[AWSExecutor mainThreadExecutor] withBlock:^id _Nullable(AWSTask * _Nonnull task) {
if (task.error) {
//NSLog(@"%@",task.error);
[self hideHud];
[self alertView:@"Image uplaoding failed please try again." title:@"Unsuccessfull"];
}
if (task.result) {
//AWSS3TransferManagerUploadOutput *uploadOutput = task.result;
[self hideHud];
[self alertView:@"User registerd successfully." title:@"Successfull"];
}
return nil;
}];
}
答案 0 :(得分:0)
您好像告诉凭据提供商查看us-east-1,但您的身份池位于us-west-2。由于它不存在于us-east-1中,因此您可以获得该资源未找到错误。
如果您更新AWSRegionUSEast1区域,那么您应该很高兴。