首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将图像上传到S3中的iOS中?

如何将图像上传到S3中的iOS中?
EN

Stack Overflow用户
提问于 2015-11-21 21:17:14
回答 1查看 223关注 0票数 1

我正在使用UIImagePicker在我的应用程序中选择或拍照。在我选择图片后,我需要将它上传到AWS S3。我做了以下步骤,

代码语言:javascript
复制
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
    self.imgView.image = chosenImage;
    imageUrl = info[UIImagePickerControllerReferenceURL];
    NSString * timestamp = TimeStamp;
    NSString *UUID = [[NSUUID UUID] UUIDString];

    fileName = [NSString stringWithFormat:@"posts/images/%@%@.jpg", UUID, timestamp];

    [picker dismissViewControllerAnimated:YES completion:NULL];

}

为了上传,

代码语言:javascript
复制
AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];
uploadRequest.body = image;
uploadRequest.key = fileName;
uploadRequest.bucket = MY_BUCKET;
uploadRequest.ACL = AWSS3ObjectCannedACLPublicRead;
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];

__weak BTEditProfileViewController *weakSelf = self;
[[transferManager upload:uploadRequest] continueWithBlock:^id(AWSTask *task) {
    if (task.error) {
        if ([task.error.domain isEqualToString:AWSS3TransferManagerErrorDomain]) {
            switch (task.error.code) {
                case AWSS3TransferManagerErrorCancelled:
                case AWSS3TransferManagerErrorPaused:
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        NSLog(@"COMPLETED!!");
                    });
                }
                    break;

                default:
                    NSLog(@"Upload failed: [%@]", task.error);
                    break;
            }
        } else {
            NSLog(@"Upload failed: [%@]", task.error);
        }
    }

    if (task.result) {
        dispatch_async(dispatch_get_main_queue(), ^{
            NSLog(@"RESULT:::%@",task.result);
        });
    }

    return nil;
}];

当我运行这个程序时,我得到了以下错误。

代码语言:javascript
复制
Upload failed: [Error Domain=com.amazonaws.AWSS3TransferManagerErrorDomain Code=5 "'body' can not be nil" UserInfo={NSLocalizedDescription='body' can not be nil}]

我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-23 19:24:50

body属性需要是NSURL的一个实例(需要是一个文件URL)。

请注意,我们正在逐步淘汰AWSS3TransferManagerAWSS3TransferUtility取代了AWSS3TransferManager和can NSData,所以您应该看看。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33848677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档