iOS 阿里云上传图片
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 阿里云上传图片相关推荐
- 阿里云上传图片的使用,AccessKey查看,入门级别
阿里云上传图片的使用 可能很多人想上传图片到云端,却连阿里云怎么使用都还不会,我这个是入门级别的教程,一步一步来 我这里先附上我自己的前端上传图片教程代码vue前端直传阿里云 首先就是点击阿里云之后进 ...
- 阿里云上传图片返回403其中一种解决办法
阿里云上传图片返回403 最近发现项目上传图片到阿里云失败,返回403,排查了一圈发现是计算机时间和实际时间误差过大造成的, 上传图片时会在authorization生成带有计算机时间的编码字符串,如 ...
- 微信小程序/vue通过阿里云上传图片
1.首先前端放入获取上传的组件 微信小程序uview组件: https://www.uviewui.com/components/upload.html vue所使用的element组件: https ...
- iOS阿里云对象存储 OSS文件的上传/下载的实现
之前的项目中,图片语音等资源文件都是直接上传数据流给服务器,然后服务器进行处理和存储.最近的这个项目,服务器直接开的OSS,然后客户端直接使用阿里云提供的上传下载功能来上传和下载资源. 阿里云对图片的 ...
- [iOS]阿里云人脸身份证校验
之前使用人脸身份证校验时,一直返回code=-1提示"照片质量太低".当时以为是图片太小不清晰,传大一些的图片时又提示"图片过大",那时弄得很懵因为安卓端能正常 ...
- ios阿里云移动推送开发流程
首先来说说阿里云的好处,前5万的设备是不收费的,而且不限制发送条数,只现在设备数,如果用户量超过5万,则收取0.06元/个用户,相比极光推送,个人还是喜欢阿里云推送,极光推送的用户量大有瓶颈,而且VI ...
- 阿里云上传图片视频基本步骤
1.获取accesskey secret凭证,初始配置,然后建立连接 2.上传文件,或是转成流的方式,或者本地上传视频,或者网络视频,总之可以根据sdk方法形参配置好要发送的内容 3.通过发送接口发送 ...
- iOS 阿里云短视频上传
之前维护一个项目用到VODUpload上传头像,因为太忙,并没有深入研究,在此先记录一下简单的使用. 1.官方连接demo连接 安装SDK: pod 'VODUpload' 导入头文件 #import ...
- base64格式的图片上传阿里云
base64格式的图片上传阿里云 上传图片的时候,除了普通的图片上传,还有一张图片信息是以base64格式发送到后台的. 后台接受base64格式的图片,上传至阿里云代码:(主要是将base64转化成 ...
最新文章
- 浅议NetMQ常见模式和消息加密机制
- linux 从不兼容的指针类型,警告:从不兼容的指针类型初始化
- winfrom实现简单计算器V2版本
- C# 泛型的协变和逆变
- java 存储过程_Java 调用存储过程
- 无法拒绝APP测试的理由,如果你还不知道,是我的错!
- Idea中maven项目中导入本地jar包
- 计算机学习知识,如何学习计算机知识呢
- 做技术的你,如果别人找你创业,该怎么办?
- pde中微元分析法的主要思想_有限元法(FEM)
- 3D全息投影 大家可以自己动手制作
- 《可复制的领导力》思维导图读书笔记,提升职场竞争力
- am5728通过DM框架配置GPIO管脚
- CPU核心数目 与 多线程
- cadence中一些常见英文的含义
- 【拓扑学知识】4.拓扑性质--分离公理与可数公理(分离性和可数性)
- 对与association和collection的理解:
- 05_SQL注入_功能语句报错注入盲注
- SpringBoot学习+秒杀项目
- 求一份 2018年5月更新最新全国省市区县geojson数据(江苏)(echarts等图表可用)
热门文章
- 申请阿里云服务器并配置SSL证书(附带微信公众号配置服务器)
- 作为 Android 开发者,如何深入学习 Android UI?
- 唯品会获得vip商品详情 API 返回值说明
- Zero Forex领汇来告诉你什么是WH?
- 什么是大小端?如何判断大小端
- one 主格 复数 宾格_主格、宾格、名词所有格
- 电脑怎么搜索文本内容? 电脑快速搜索内容的技巧
- C#获取汉子对应的拼音(首字母大写或小写,全拼音含首个字母大写)
- mp3 编辑 linux,Linux_Ubuntu 32/64位安装音乐标签编辑器Kid3的方法, Kid3能够修改mp3中ID3的tag标 - phpStudy...
- Origin2018(汉化版)在使用科学计数法的时候如何将坐标刻度的0.0改成0