如何使用 AWS iOS SDK v2 将 UIImage 上传到 S3 [英] How to upload a UIImage to S3 with AWS iOS SDK v2
问题描述
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
(没有文件路径)怎么办?是否可以使用 SDK
将 UIImage
(或 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:
- 从 v1 开始,暂停/恢复功能需要输入文件.无法恢复 NSData 并在以下情况下重试传输该应用程序已终止.
- 仅适用于 iOS 7 及以上版本的后台传输支持文件.目前,我们不支持后台传输,但我们计划在未来支持它.我们考虑接受一个 NSData 并在内部将数据持久化到一个临时目录.
- 我们决定不在 2.0 版本中包含它,因为如果 NSData 是由文件支持,它使数据的磁盘使用量加倍.还,开发人员在使用时必须处理磁盘相关的错误S3传输管理器.即使我们决定在 2.0 中不接受 NSData发布,我们欢迎您的反馈.如果这是您想要的功能要在未来的版本中看到,请创建一个新的问题功能请求.
```
这篇关于如何使用 AWS iOS SDK v2 将 UIImage 上传到 S3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!