1.上阿里云的网站里下载sdk, 网址:

https://help.aliyun.com/document_detail/32060.html?spm=5176.doc32059.6.296.QgohfC

2. 把demo中的AliyunOSSiOS.framework拖入工程

3.导入头文件

#import <AliyunOSSiOS/OSSService.h>

4.初始化阿里云

@property (strong, nonatomic) OSSClient *client;

- (void)initALi

{

id<OSSCredentialProvider> credential = [[OSSPlainTextAKSKPairCredentialProvider alloc] initWithPlainTextAccessKey:@“your key” secretKey:@“your secretKey”];

OSSClientConfiguration * conf = [OSSClientConfigurationnew];

// 网络请求遇到异常失败后的重试次数

conf.maxRetryCount = 3;

// 网络请求的超时时间

conf.timeoutIntervalForRequest =30;

// 允许资源传输的最长时间

conf.timeoutIntervalForResource =24 * 60 * 60;

// 你的阿里地址前面通常是这种格式 :http://oss……

_client = [[OSSClient alloc] initWithEndpoint:你的阿里地址 credentialProvider:credential];

}

5. 在 ImagePicker 方法中

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage];

[selfperformSelector:@selector(saveImage:) withObject:img afterDelay:0.1];

}

- (void)saveImage:(UIImage *)image {

BOOL success;

NSFileManager *fileManager = [NSFileManagerdefaultManager];

NSError *error;

NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

// 图片名

NSString *imageName = [NSStringstringWithFormat:@"%@.jpg", [[NSUUIDUUID] UUIDString]];

NSString *imageFilePath = [documentsDirectorystringByAppendingPathComponent:[NSStringstringWithFormat:@"%@", imageName]];

success = [fileManager fileExistsAtPath:imageFilePath];

if(success) {

[fileManager removeItemAtPath:imageFilePatherror:&error];

}

UIImage *smallImage = [selfthumbnailWithImageWithoutScale:image size:CGSizeMake(93,93)];

[UIImageJPEGRepresentation(smallImage,0.3)writeToFile:imageFilePathatomically:YES];

UIImage *selfPhoto = [UIImageimageWithContentsOfFile:imageFilePath];//读取图片文件

NSData *ImageData =UIImagePNGRepresentation(selfPhoto);

[self updateToALi:ImageDataimageName:imageName];

}

// 改变图片尺寸

-(UIImage *)thumbnailWithImageWithoutScale:(UIImage *)image size:(CGSize)asize

{

UIImage *newimage;

if (nil == image) {

newimage = nil;

}

else{

CGSize oldsize = image.size;

CGRect rect;

if (asize.width/asize.height > oldsize.width/oldsize.height) {

rect.size.width = asize.height*oldsize.width/oldsize.height;

rect.size.height = asize.height;

rect.origin.x = (asize.width - rect.size.width)/2;

rect.origin.y =0;

}

else{

rect.size.width = asize.width;

rect.size.height = asize.width*oldsize.height/oldsize.width;

rect.origin.x =0;

rect.origin.y = (asize.height - rect.size.height)/2;

}

UIGraphicsBeginImageContext(asize);

CGContextRef context =UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [[UIColorclearColor] CGColor]);

UIRectFill(CGRectMake(0,0, asize.width, asize.height));//clear background

[image drawInRect:rect];

newimage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

}

return newimage;

}

5. 上传图片

- (void)updateToALi:(NSData *)data imageName:(NSString *)imageName

{

OSSPutObjectRequest * put = [OSSPutObjectRequestnew];

put.bucketName =你的bucketName;

put.objectKey = 你的图片名;

put.uploadingData = data; // 直接上传NSData

put.uploadProgress = ^(int64_t bytesSent,int64_t totalByteSent, int64_t totalBytesExpectedToSend) {

NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);

};

OSSTask * putTask = [_clientputObject:put];

// 上传阿里云

[putTask continueWithBlock:^id(OSSTask *task) {

if (!task.error) {

NSLog(@"upload object success!");

} else {

NSLog(@"upload object failed, error: %@" , task.error);

}

return nil;

}];

}

iOS 阿里云上传图片相关推荐

  1. 阿里云上传图片的使用,AccessKey查看,入门级别

    阿里云上传图片的使用 可能很多人想上传图片到云端,却连阿里云怎么使用都还不会,我这个是入门级别的教程,一步一步来 我这里先附上我自己的前端上传图片教程代码vue前端直传阿里云 首先就是点击阿里云之后进 ...

  2. 阿里云上传图片返回403其中一种解决办法

    阿里云上传图片返回403 最近发现项目上传图片到阿里云失败,返回403,排查了一圈发现是计算机时间和实际时间误差过大造成的, 上传图片时会在authorization生成带有计算机时间的编码字符串,如 ...

  3. 微信小程序/vue通过阿里云上传图片

    1.首先前端放入获取上传的组件 微信小程序uview组件: https://www.uviewui.com/components/upload.html vue所使用的element组件: https ...

  4. iOS阿里云对象存储 OSS文件的上传/下载的实现

    之前的项目中,图片语音等资源文件都是直接上传数据流给服务器,然后服务器进行处理和存储.最近的这个项目,服务器直接开的OSS,然后客户端直接使用阿里云提供的上传下载功能来上传和下载资源. 阿里云对图片的 ...

  5. [iOS]阿里云人脸身份证校验

    之前使用人脸身份证校验时,一直返回code=-1提示"照片质量太低".当时以为是图片太小不清晰,传大一些的图片时又提示"图片过大",那时弄得很懵因为安卓端能正常 ...

  6. ios阿里云移动推送开发流程

    首先来说说阿里云的好处,前5万的设备是不收费的,而且不限制发送条数,只现在设备数,如果用户量超过5万,则收取0.06元/个用户,相比极光推送,个人还是喜欢阿里云推送,极光推送的用户量大有瓶颈,而且VI ...

  7. 阿里云上传图片视频基本步骤

    1.获取accesskey secret凭证,初始配置,然后建立连接 2.上传文件,或是转成流的方式,或者本地上传视频,或者网络视频,总之可以根据sdk方法形参配置好要发送的内容 3.通过发送接口发送 ...

  8. iOS 阿里云短视频上传

    之前维护一个项目用到VODUpload上传头像,因为太忙,并没有深入研究,在此先记录一下简单的使用. 1.官方连接demo连接 安装SDK: pod 'VODUpload' 导入头文件 #import ...

  9. base64格式的图片上传阿里云

    base64格式的图片上传阿里云 上传图片的时候,除了普通的图片上传,还有一张图片信息是以base64格式发送到后台的. 后台接受base64格式的图片,上传至阿里云代码:(主要是将base64转化成 ...

最新文章

  1. 浅议NetMQ常见模式和消息加密机制
  2. linux 从不兼容的指针类型,警告:从不兼容的指针类型初始化
  3. winfrom实现简单计算器V2版本
  4. C# 泛型的协变和逆变
  5. java 存储过程_Java 调用存储过程
  6. 无法拒绝APP测试的理由,如果你还不知道,是我的错!
  7. Idea中maven项目中导入本地jar包
  8. 计算机学习知识,如何学习计算机知识呢
  9. 做技术的你,如果别人找你创业,该怎么办?
  10. pde中微元分析法的主要思想_有限元法(FEM)
  11. 3D全息投影 大家可以自己动手制作
  12. 《可复制的领导力》思维导图读书笔记,提升职场竞争力
  13. am5728通过DM框架配置GPIO管脚
  14. CPU核心数目 与 多线程
  15. cadence中一些常见英文的含义
  16. 【拓扑学知识】4.拓扑性质--分离公理与可数公理(分离性和可数性)
  17. 对与association和collection的理解:
  18. 05_SQL注入_功能语句报错注入盲注
  19. SpringBoot学习+秒杀项目
  20. 求一份 2018年5月更新最新全国省市区县geojson数据(江苏)(echarts等图表可用)

热门文章

  1. 申请阿里云服务器并配置SSL证书(附带微信公众号配置服务器)
  2. 作为 Android 开发者,如何深入学习 Android UI?
  3. 唯品会获得vip商品详情 API 返回值说明
  4. Zero Forex领汇来告诉你什么是WH?
  5. 什么是大小端?如何判断大小端
  6. one 主格 复数 宾格_主格、宾格、名词所有格
  7. 电脑怎么搜索文本内容? 电脑快速搜索内容的技巧
  8. C#获取汉子对应的拼音(首字母大写或小写,全拼音含首个字母大写)
  9. mp3 编辑 linux,Linux_Ubuntu 32/64位安装音乐标签编辑器Kid3的方法,  Kid3能够修改mp3中ID3的tag标 - phpStudy...
  10. Origin2018(汉化版)在使用科学计数法的时候如何将坐标刻度的0.0改成0