上传图片到OSS内存猛增的问题

最近在写一个项目,需要将相机拍摄的图片上传到OSS,说起来很简单,第一步将相机拍的图片通过sdwebimage下载下来,然后将图片上传到oss,不过其中遇到了内存的问题.

因为相机拍摄的图片是高清图片,多上传几次直接收到内存警告的提醒,然后APP就会崩溃,查找资料发现,上传图片到oss有两种方式.

第一种是通过是通过NSData的方式,我刚开始就是用的这种方式

NSData *data = UIImageJPEGRepresentation(image, 0.3);

 put.uploadingData= data;

 OSSTask* putTask = [clientputObject:put];

内存增高的原因就是这段代码:UIImageJPEGRepresentation(image, 0.3)

查找资料发现这种方法确实会引起内存增高

第二种是通过图片路径来上传

put.uploadingFileURL = [NSURL fileURLWithPath:url];

 OSSTask* putTask = [clientputObject:put];

把图片的路径传进去就能上传,至于怎么获取到sdwebimage下载图片的路径,我上一篇文章已经写过了;通过路径这种方式上传就不会出现内存问题.

所以,上传图片到oss的时候最好选择用图片路径上传,如果图片特别小也可以通过nsdata这种方法;OSS支持单张上传也支持多张同时上传还是很方便的.

你可能感兴趣的:(上传图片到OSS内存猛增的问题)