This commit is contained in:
启星
2025-11-21 16:17:05 +08:00
parent 7ac937ddbf
commit 8913ea6f48
283 changed files with 8474 additions and 800 deletions

View File

@@ -15,6 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
@class QXCOSUploadCredentialsModel;
@interface QXCOSUploadManager : NSObject
+(instancetype)shareManager;
-(void)audioUploadFile:(id)file withObjectKey:(NSString *)key complete:(void (^)(NSString * fileUrl, QXCOSUploadImageState))complete;
- (void)uploadFile:(NSArray *_Nonnull)files withObjectKey:(NSArray *)objectKeys isAsync:(BOOL)isAsync complete:(void(^)(NSArray<NSString *> * names, QXCOSUploadImageState state))complete;
- (void)activityUploadFile:(NSArray *)files withObjectKey:(NSArray *)objectKeys isAsync:(BOOL)isAsync complete:(void(^)(NSArray<NSString *> *names, QXCOSUploadImageState state))complete;
- (NSString *)currentDate;

View File

@@ -27,6 +27,77 @@
}
return self;
}
-(void)audioUploadFile:(id)file withObjectKey:(NSString *)key complete:(void (^)(NSString * fileUrl, QXCOSUploadImageState state))complete{
[[QXRequset shareInstance] getWithUrl:[NSString stringWithFormat:@"%@%@",ServerUrl,QXGetCosTempKeys] parameters:@{} needCache:NO success:^(id responseObject) {
QXCOSUploadModel *model = [QXCOSUploadModel yy_modelWithJSON:responseObject[@"data"]];
if (![model.region isExist] || ![model.bucket isExist] || ![model.credentials.sessionToken isExist] || ![model.credentials.tmpSecretId isExist] || ![model.credentials.tmpSecretKey isExist]) {
QXLOG(@"服务端配置错误");
complete(@"",QXCOSUploadImageFailed);
return;
}
NSString *region = model.region;
QCloudServiceConfiguration* configuration = [QCloudServiceConfiguration new];
QCloudCOSXMLEndPoint* endpoint = [[QCloudCOSXMLEndPoint alloc] init];
endpoint.regionName = region;
// 使 HTTPS
endpoint.useHTTPS = true;
configuration.endpoint = endpoint;
// COS
[QCloudCOSXMLService registerDefaultCOSXMLWithConfiguration:configuration];
[QCloudCOSTransferMangerService registerDefaultCOSTransferMangerWithConfiguration:configuration];
NSString *bucket = model.bucket;
QCloudCOSXMLUploadObjectRequest* put = [QCloudCOSXMLUploadObjectRequest new];
QCloudCredential * credential = [QCloudCredential new];
credential.secretID = model.credentials.tmpSecretId;
credential.secretKey = model.credentials.tmpSecretKey;
credential.token = model.credentials.sessionToken;
//
put.credential = credential;
put.bucket = bucket;
put.object = [NSString stringWithFormat:@"%@%@",AUDIO_FILE_BASE_PATH,key];
if ([file isKindOfClass:[UIImage class]]) {
NSData *data = UIImageJPEGRepresentation(file, 0.3);
put.body = data;
}else if ([file isKindOfClass:[NSData class]]){
put.body = file;
}else if ([file isKindOfClass:[NSURL class]]){
put.body = (NSURL *)file;
}
//
[put setSendProcessBlock:^(int64_t bytesSent,
int64_t totalBytesSent,
int64_t totalBytesExpectedToSend) {
// bytesSent
// totalBytesSent
// totalBytesExpectedToSend
}];
//
[put setFinishBlock:^(QCloudUploadObjectResult *result, NSError *error) {
if (!error) {
NSLog(@"upload object success!");
if (complete) {
complete(result.location ,QXCOSUploadImageSuccess);
}
} else {
NSLog(@"upload object failed, error: %@" , error);
if (complete) {
complete(@"",QXCOSUploadImageFailed);
}
}
}];
[[QCloudCOSTransferMangerService defaultCOSTransferManager] UploadObject:put];
} fail:^(NSError *error, NSString *msg, NSURLSessionDataTask *task) {
}];
}
-(void)uploadFile:(NSArray *)files withObjectKey:(NSArray *)objectKeys isAsync:(BOOL)isAsync complete:(void (^)(NSArray<NSString *> * _Nullable, QXCOSUploadImageState))complete{
[[QXRequset shareInstance] getWithUrl:[NSString stringWithFormat:@"%@%@",ServerUrl,QXGetCosTempKeys] parameters:@{} needCache:NO success:^(id responseObject) {
QXCOSUploadModel *model = [QXCOSUploadModel yy_modelWithJSON:responseObject[@"data"]];