如何使用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 )已经有一个从文件路径URL上传图像的示例:
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
在内存中(没有文件路径)?
是否可以将 UIImage
(或者 NSData
)上传到 S3
使用 SDK
?
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是
支持的一个文件,它使数据的磁盘使用量翻倍。此外,
开发人员在使用
S3TransferManager时必须处理与磁盘相关的错误。即使我们决定不在2.0
版本中接受NSData,我们也会对您的反馈持开放态度。如果这是您想要在未来版本中查看
的功能,请使用
功能请求创建新问题。
```
这篇关于如何使用AWS iOS SDK v2将UIImage上传到S3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!