gpt4 book ai didi

iphone - AWS S3 将图像上传到 Bucket iOS 应用程序

转载 作者:技术小花猫 更新时间:2023-10-29 11:18:57 34 4
gpt4 key购买 nike

我是 AWS 的新手,正在将其用于 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

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

我已经对您的论坛主题发布了回复 here ,但总而言之,我相信您遇到了 SDK 中的错误,需要明确设置存储桶所在的 S3 端点。

关于iphone - AWS S3 将图像上传到 Bucket iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15069772/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com