I am Using latest SDK library of amazon for upload image to bucket. but getting error, here is my code
App Delegate code
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionAPSoutheast1
identityPoolId:AWS_IDENTITY_POOL_ID1];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionAPSoutheast1
credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
return YES;
}
My View Controller Code is
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
NSString *downloadingFilePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"downloaded-myImage.jpg"];
NSURL *downloadingFileURL = [NSURL fileURLWithPath:downloadingFilePath];
imageView.image = [UIImage imageWithContentsOfFile:downloadingFilePath];
AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];
uploadRequest.bucket = @"myBucketName";
uploadRequest.key = @"downloaded-myImage.jpg";
uploadRequest.body = downloadingFileURL;
[[transferManager upload:uploadRequest] continueWithExecutor:[AWSExecutor mainThreadExecutor]
withBlock:^id(AWSTask *task) {
if (task.error) {
if ([task.error.domain isEqualToString:AWSS3TransferManagerErrorDomain]) {
switch (task.error.code) {
case AWSS3TransferManagerErrorCancelled:
case AWSS3TransferManagerErrorPaused:
break;
default:
NSLog(@"Error: %@", task.error);
break;
}
} else {
// Unknown error.
NSLog(@"Error: %@", task.error);
}
}
if (task.result) {
AWSS3TransferManagerUploadOutput *uploadOutput = task.result;
// The file uploaded successfully.
NSLog(@"LOG %@", task.result);
}
return nil;
}];
[transferManager upload:uploadRequest];
But Every time getting error like this
AWSiOSSDKv2 [Error] AWSCredentialsProvider.m line:528 | __40-[AWSCognitoCredentialsProvider refresh]_block_invoke352 | Unable to refresh.
Error is [Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found."
UserInfo={NSUnderlyingError=0x7ffd7300a070 {Error Domain=kCFErrorDomainCFNetwork Code=-1003 "(null)"
UserInfo={_kCFStreamErrorCodeKey=8, _kCFStreamErrorDomainKey=12}}, NSErrorFailingURLStringKey=https://cognito-identity.ap-southeast-1.amazonaws.com/,
NSErrorFailingURLKey=https://cognito-identity.ap-southeast-1.amazonaws.com/, _kCFStreamErrorDomainKey=12, _kCFStreamErrorCodeKey=8,
NSLocalizedDescription=A server with the specified hostname could not be found.}]
The supported endpoints for Cognito Identity are (taken from here: http://docs.aws.amazon.com/general/latest/gr/rande.html#cognito_identity_region ):
Region Name Region Endpoint Protocol
US East (N. Virginia) us-east-1 cognito-identity.us-east-1.amazonaws.com HTTPS
EU (Ireland) eu-west-1 cognito-identity.eu-west-1.amazonaws.com HTTPS
Asia Pacific (Tokyo) ap-northeast-1 cognito-identity.ap-northeast-1.amazonaws.com HTTPS
It looks like Cognito Identity is not supported in the Singapore region (ap-southeast-1). Try a different region from the list above.
Amazon Cognito Identity currently is only available in us-east-1, eu-west-1, and ap-northeast-1. When instantiating the AWSCognitoCredentialsProvider you will need to use the region that your Cognito Identity Pool was created in.
You can still use the credentials obtained by Cognito Identity for other services in other regions.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.