121 lines
3.1 KiB
Objective-C
121 lines
3.1 KiB
Objective-C
//
|
|
// V2NIMStorageServiceProtocol.h
|
|
// NIMLib
|
|
//
|
|
// Created by Netease.
|
|
// Copyright (c) 2023 Netease. All rights reserved.
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "V2NIMBase.h"
|
|
|
|
@class V2NIMStorageScene;
|
|
@class V2NIMUploadFileParams;
|
|
@class V2NIMUploadFileTask;
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
/**
|
|
* 上传成功回调
|
|
*
|
|
* @param urlString 上传后得到的URL
|
|
*/
|
|
typedef void(^V2NIMFileUploadSuccess)(NSString *urlString);
|
|
/**
|
|
* 上传失败回调
|
|
*
|
|
* @param error 上传失败信息
|
|
*/
|
|
typedef void(^V2NIMFileUploadFailure)(V2NIMError *error);
|
|
/**
|
|
* 上传/下载进度
|
|
*
|
|
* @param progress 进度 0%-100%
|
|
*/
|
|
typedef void(^V2NIMFileUploadProgress)(float progress);
|
|
|
|
/// 登录协议
|
|
@protocol V2NIMStorageService <NSObject>
|
|
/**
|
|
* 添加自定义存储场景
|
|
*
|
|
* @param sceneName 场景名
|
|
* @param expireTime 过期时间, 单位秒
|
|
*/
|
|
- (void)addCustomStorageScene:(NSString *)sceneName expireTime:(NSUInteger)expireTime;
|
|
/**
|
|
* 创建文件上传任务
|
|
*
|
|
* @param fileParams 文件上传的相关参数
|
|
*/
|
|
- (V2NIMUploadFileTask *)createUploadFileTask:(V2NIMUploadFileParams *)fileParams;
|
|
|
|
/*
|
|
* 文件上传
|
|
* @param fileTask 文件上传的任务
|
|
* @param success 上传成功回调
|
|
* @param failure 上传失败回调
|
|
* @param progress 件上传进度回调
|
|
*/
|
|
- (void)uploadFile:(V2NIMUploadFileTask *)fileTask
|
|
success:(V2NIMFileUploadSuccess)success
|
|
failure:(V2NIMFileUploadFailure)failure
|
|
progress:(V2NIMFileUploadProgress)progress;
|
|
/*
|
|
* 取消文件上传
|
|
* @param fileTask 文件上传的任务
|
|
* @param success 取消上传成功回调
|
|
* @param failure 取消上传失败回调
|
|
*/
|
|
- (void)cancelUploadFile:(V2NIMUploadFileTask *)fileTask
|
|
success:(V2NIMSuccessCallback)success
|
|
failure:(V2NIMFailureCallback)failure;
|
|
/*
|
|
* 查询存储场景列表
|
|
*/
|
|
- (NSArray<V2NIMStorageScene *> *)getStorageSceneList;
|
|
|
|
@end
|
|
/// 文件存储场景
|
|
@interface V2NIMStorageScene : NSObject
|
|
/// 场景名
|
|
@property (nullable,nonatomic,strong) NSString *sceneName;
|
|
/// 过期时间, 单位秒
|
|
/// 0表示永远不过期,否则以该时间为过期时间
|
|
@property (nonatomic,assign) NSUInteger expireTime;
|
|
|
|
@end
|
|
|
|
/// 文件存储场景
|
|
@interface V2NIMStorageSceneConfig : NSObject
|
|
|
|
/// 默认头像类型等场景, 默认不过期
|
|
+ (V2NIMStorageScene *)DEFAULT_PROFILE;
|
|
/// 默认文件类型等场景, 默认不过期
|
|
+ (V2NIMStorageScene *)DEFAULT_IM;
|
|
/// 默认日志类型等场景, 默认不过期
|
|
+ (V2NIMStorageScene *)DEFAULT_SYSTEM;
|
|
/// 安全链接,每次大家需要密钥才能查看,默认不过期
|
|
+ (V2NIMStorageScene *)SECURITY_LINK;
|
|
@end
|
|
|
|
/// 文件存储场景
|
|
@interface V2NIMUploadFileTask : NSObject
|
|
/// 场景名
|
|
@property (nonatomic,strong) NSString *taskId;
|
|
/// 过期时间, 单位秒
|
|
/// 0表示永远不过期,否则以该时间为过期时间
|
|
@property (nonatomic,strong) V2NIMUploadFileParams *uploadParams;
|
|
|
|
@end
|
|
|
|
@interface V2NIMUploadFileParams : NSObject
|
|
/// 文件地址
|
|
@property (nonatomic,strong) NSString *filePath;
|
|
/// 场景名
|
|
@property (nonatomic,strong) NSString *sceneName;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|