cdts/xdts-ios 3/TreeHole/CYHResetCode/CYH/OSS_Tool/OSSTool.m

140 lines
4.4 KiB
Mathematica
Raw Permalink Normal View History

2023-07-27 09:20:00 +08:00
//
// OSSTool.m
// TreeHole
//
// Created by iOS on 2023/1/31.
//
#import "OSSTool.h"
#import <AliyunOSSiOS/OSSService.h>
@interface OSSTool()
@property (nonatomic, strong)OSSClient *client;
@end
@implementation OSSTool
///
- (void)setupSDK {
}
///
/// - Parameters:
/// - file: NSData/NSUrl/NSString;
/// NSArray<NSData/NSUrl/NSString>
/// - param: NSDictionary<key=@"bucketName"/@"objectKey">
/// - progress:
/// - complete:
- (void)uploadFile:(id)file param:(NSDictionary *)param uploadProgress:(OSSNetworkingProgressBlock)progress complete:(OSSCompleteBlock)complete {
}
/// , return NSData
/// - Parameters:
/// - filePath: ,url
/// - param: -
/// - progress: -
/// - complete: -
- (void)downloadFile:(NSString *)filePath param:(NSDictionary *)param downloadProgress:(OSSNetworkingProgressBlock)progress complete:(OSSCompleteBlock)complete {
}
#pragma mark -
- (void)setupAliOSS {
NSString *OSS_STS_URL = @"";
NSString *OSS_ENDPOINT = @"";
// provider
OSSAuthCredentialProvider *credentialProvider = [[OSSAuthCredentialProvider alloc] initWithAuthServerUrl:OSS_STS_URL];
// client,dns
OSSClientConfiguration *cfg = [[OSSClientConfiguration alloc] init];
_client = [[OSSClient alloc] initWithEndpoint:OSS_ENDPOINT credentialProvider:credentialProvider clientConfiguration:cfg];
}
- (void)uploadToAliOSSFile:(id)file param:(NSDictionary *)param uploadProgress:(OSSNetworkingProgressBlock)progress complete:(OSSCompleteBlock)complete {
NSString *bucketName = @"";//
NSString *objectKey = @"";//
if ([param.allKeys containsObject:@"bucketName"]) {
bucketName = [param objectForKey:@"bucketName"];
}
if ([param.allKeys containsObject:@"objectKey"]) {
objectKey = [param objectForKey:@"objectKey"];
}
///
NSMutableArray *fileArrayM = [NSMutableArray array];
if ([file isKindOfClass:NSArray.class]) {
for (id fileItem in file) {
OSSPutObjectRequest *put = [OSSPutObjectRequest new];
put.bucketName = bucketName;
put.objectKey = objectKey;
if ([fileItem isKindOfClass:NSData.class]) {
//NSData
put.uploadingData = fileItem;
} else if ([fileItem isKindOfClass:NSURL.class]) {
//local file path
put.uploadingFileURL = fileItem;
} else if ([fileItem isKindOfClass:NSString.class]) {
//local file path
put.uploadingFileURL = [NSURL URLWithString:fileItem];
} else {
NSAssert(YES, @"fileItem必须是NSData/NSURL/NSString类型");
}
put.uploadProgress = progress;
OSSTask *putTask = [self.client putObject:put];
[fileArrayM addObject:putTask];
}
[OSSTask taskForCompletionOfAllTasks:fileArrayM];
return;
}
///
OSSPutObjectRequest * put = [OSSPutObjectRequest new];
put.bucketName = bucketName;
put.objectKey = objectKey;
if ([file isKindOfClass:NSData.class]) {
//NSData
put.uploadingData = file;
} else if ([file isKindOfClass:NSURL.class]) {
//local file path
put.uploadingFileURL = file;
} else if ([file isKindOfClass:NSString.class]) {
//local file path
put.uploadingFileURL = [NSURL URLWithString:file];
} else {
NSAssert(YES, @"fileItem必须是NSData/NSURL/NSString类型");
}
put.uploadProgress = progress;
// ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
// NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
// };
OSSTask *putTask = [self.client putObject:put];
[putTask continueWithBlock:^id(OSSTask *task) {
// if (!task.error) {
// NSLog(@"upload object success!");
// } else {
// NSLog(@"upload object failed, error: %@" , task.error);
// }
// return nil;
return complete(task.result, task.error);
}];
//
[putTask waitUntilFinished];
}
@end