下面我来介绍一下如何使用OSS上传图片:
下载链接:下载链接
首先,我们需要注册账号,拿到秘钥:
//需要的一些基本信息
static NSString *const AccessKey = @"";
static NSString *const SecretKey = @"";
static NSString *const BucketName = @"";
static NSString *const AliYunHost = @"";
static NSString *kTempFolder = @"";
static NSString *rootUrl = @"";
下面是我封装的几个方法,可以同步或异步,多张图片或者单张图片的上传方法:
// 当前上传段长度、当前已经上传总长度、一共需要上传的总长度
typedef void(^HBUploadImageManageProgressBlock)(int64_t bytesSent, int64_t totalByteSent ,int64_t totalBytesExpectedToSend);
@interface HBUploadImageManage : NSObject
//异步上传单张图片
+ (void)asyncUploadImage:(UIImage *)image progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names,UploadImageState state))complete;
//同步上传单张图片
+ (void)syncUploadImage:(UIImage *)image progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names,UploadImageState state))complete;
//异步上传多张图片
+ (void)asyncUploadImages:(NSArray<UIImage *> *)images progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names, UploadImageState state))complete;
//同步上传多张图片
+ (void)syncUploadImages:(NSArray<UIImage *> *)images progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names, UploadImageState state))complete;
//异步单个上传视频
+ (void)asyncUploadVideo:(NSData *)data progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names, UploadImageState state))complete;
//同步单个上传视频
+ (void)syncUploadVideo:(NSData *)data progress:(HBUploadImageManageProgressBlock)progressBlock complete:(void(^)(NSArray<NSString *> *names, UploadImageState state))complete;
设置回调类型:
typedef NS_ENUM(NSInteger, UploadImageState) {
UploadImageFailed = 0,
UploadImageSuccess = 1
};
下面介绍一下使用方法:
//上传图片
[HBUploadImageManage asyncUploadImage:img progress:^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
} complete:^(NSArray<NSString *> *names, UploadImageState state) {
if (state == UploadImageSuccess) {
NSLog(@"上传默认图成功");
}else{
}
}];
上传视频
[self showLoadingInWindowWithMessage:@"上传中..."];
[HBUploadImageManage asyncUploadVideo:self.videoData progress:^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
} complete:^(NSArray<NSString *> *names, UploadImageState state) {
[weakSelf dissmissWindowHud];
if (state == UploadImageSuccess) {
NSLog(@"上传视频成功");
weakSelf.customNavBar.rightButton.enabled = YES;
//有图
if ([HBHuTool judgeArrayIsNotEmpty:names]) {
//拿到图片
[weakSelf updateDefineVideoImageArray:names];
}else{
NSLog(@"上传默认图失败");
[weakSelf showInfoHudWithMessage:@"上传失败!请重新上传"] ;
}
}else{
weakSelf.customNavBar.rightButton.enabled = YES;
//上传失败
[weakSelf showInfoHudWithMessage:@"上传失败!请重新上传"] ;
}
}];
如果对你有用,请给一个赞,你的赞是我分享的动力!
END.