我是AWS的新手,并将其用于iOS应用。AWS S3将图片上传到Bucket iOS应用
我试图从我的iOS应用上传图像到名为“img.haraj.com.sa”的存储桶。当我上传任何图片时,它们不会显示在存储区中。但是,当我将目标更改为名为“haraj”的存储桶时,它们会上传并显示在存储桶中。
这里的政策:
{
"Statement": [
{
"Sid": "**********hidden**********",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::haraj/*"
]
}
]
}
我修改这个改变目标水桶。我还创建了名称为“img1.haraj.com.sa”的其他存储桶,并尝试上传图像,不幸的是它们也失败了。
看起来有一个问题,有点(。)和没有点桶的名称。没有圆点的水桶的名称可以与iOS应用程序一起使用,并且带点的名称不起作用。虽然我不确定。但我正面临着这个问题。我在应用程序代码中没有收到任何错误回复。
这里是我的iOS应用程序实现的一部分:
- (void)postAdButtonPushed:(id)sender
{
DLog(@"Post Ad")
AmazonS3Client *s3Client = [[AmazonS3Client alloc] initWithAccessKey:AWS_ACCESS_KEY_ID withSecretKey:AWS_SECRET_KEY];
s3Client.timeout = 240;
NSString *bucketName = [NSString stringWithFormat:@"img.haraj.com.sa"];
NSString *imageName = [NSString stringWithFormat:@"testimage.jpg"];
S3PutObjectRequest *objReq = [[S3PutObjectRequest alloc] initWithKey:imageName inBucket:bucketName];
objReq.contentType = @"image/jpeg";
UIImage *testImageToUpload = [self.imagesToUpload objectAtIndex:0];
NSData *imageData = UIImageJPEGRepresentation(testImageToUpload, 0.8);
objReq.data = imageData;
objReq.delegate = self;
objReq.contentLength = [imageData length];
[s3Client putObject:objReq];
}
- (void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response
{
DLog(@"response: %@", response.description)
}
- (void)request:(AmazonServiceRequest *)request didFailWithError:(NSError *)error
{
DLog(@"Req failed: %@", error.description)
}
我也是在创建的线程在亚马逊论坛:AWS Upload image to Bucket iOS app
任何帮助,将不胜感激。谢谢!
https://forums.aws.amazon.com/ message.jspa?messageID = 385925 – Eric 2013-02-25 15:56:41
谢谢@Eric。该修补程序适用于Java版本。我在iOS中使用AWS SDK。我已经整合了框架(不是sdk的源代码)。让我们希望一些简单的解决方案出来,否则我将不得不解决与源代码的东西。 :\ – 2013-02-25 16:22:31