AWS S3 Upload image to Bucket iOS app
I've posted a response to your forum thread here, but to summarize, I believe you've bumped up against a bug in the SDK and will need to explicitly set the S3 endpoint where your bucket is located.
Just wanted to weigh in, here is a code snippet that i got working
// #import <AWSS3/AWSS3.h>
// #import <AWSRuntime/AWSRuntime.h>
// then you should implement <AmazonServiceRequestDelegate>
// import those in your .h file and
// add the awss3 and awsruntime framework from the client
// download from Amazon
// myFace is the UIImage object
AmazonS3Client *s3Client = [[AmazonS3Client alloc] initWithAccessKey:@"Key_Goes_here" withSecretKey:@"Secret_Goes_Here"];
NSString *imageName = [NSString stringWithFormat:@"%@.png", @"cpa"];
S3PutObjectRequest *objReq = [[S3PutObjectRequest alloc] initWithKey:imageName inBucket:@"bucket_name"];
objReq.contentType = @"image/png";
objReq.cannedACL = [S3CannedACL publicRead];
objReq.data = UIImagePNGRepresentation(myFace);
objReq.delegate = self;
[s3Client putObject:objReq];
here are the delegate methods:
-(void)request:(AmazonServiceRequest *)request didSendData:(long long)bytesWritten totalBytesWritten:(long long)totalBytesWritten totalBytesExpectedToWrite:(long long)totalBytesExpectedToWrite {
}
-(void)request:(AmazonServiceRequest *)request didReceiveResponse:(NSURLResponse *)response {
NSLog(@"response! %@", response);
}
-(void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response {
}
-(void)request:(AmazonServiceRequest *)request didReceiveData:(NSData *)data {
NSLog(@"data?");
}
-(void)request:(AmazonServiceRequest *)request didFailWithError:(NSError *)error {
[self showAlertMessage:[error.userInfo objectForKey:@"message"] withTitle:@"Upload Error"];
}