如何使用 AWS iOS SDK v2 将 UIImage 上传到 S3 [英] How to upload a UIImage to S3 with AWS iOS SDK v2

查看:33
本文介绍了如何使用 AWS iOS SDK v2 将 UIImage 上传到 S3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Github 中的 README 页面 (https://github.com/aws/aws-sdk-ios-v2) 已经有上传图片的例子了,从文件路径网址:

The README page in Github (https://github.com/aws/aws-sdk-ios-v2) already has an example to upload an image, from the file path URL:

AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];
uploadRequest.bucket = yourBucket;
uploadRequest.key = yourKey;
uploadRequest.body = yourDataURL; // <<<< this is a NSURL
uploadRequest.contentLength = [NSNumber numberWithUnsignedLongLong:fileSize];

但是,如果我的内存中只有一个 UIImage(没有文件路径)怎么办?是否可以使用 SDKUIImage(或 NSData)上传到 S3?

But, what if I only have a UIImage in memory (without file path)? Is it possible to upload a UIImage (or it's NSData) to S3 using the SDK?

手动使用 HTTP API(使用 AFNetworking 之类的东西)会更容易吗?

Would it be easier to manually use the HTTP API (using something like AFNetworking)?

推荐答案

AWSiOSSDKv2 目前似乎不支持从内存上传图片:(

It seems that AWSiOSSDKv2 don't have support to upload images from memory at this moment :(

来自 Github 问题:

仅接受文件 NSURL 的决定是由以下驱动的因素:

The decision to accept only file NSURLs was driven by the following factors:

  1. 从 v1 开始,暂停/恢复功能需要输入文件.无法恢复 NSData 并在以下情况下重试传输该应用程序已终止.
  2. 仅适用于 iOS 7 及以上版本的后台传输支持文件.目前,我们不支持后台传输,但我们计划在未来支持它.我们考虑接受一个 NSData 并在内部将数据持久化到一个临时目录.
  3. 我们决定不在 2.0 版本中包含它,因为如果 NSData 是由文件支持,它使数据的磁盘使用量加倍.还,开发人员在使用时必须处理磁盘相关的错误S3传输管理器.即使我们决定在 2.0 中不接受 NSData发布,我们欢迎您的反馈.如果这是您想要的功能要在未来的版本中看到,请创建一个新的问题功能请求.

```

这篇关于如何使用 AWS iOS SDK v2 将 UIImage 上传到 S3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆