agora-edu-core
Version:
Core APIs for building an online classroom
158 lines (157 loc) • 4.69 kB
TypeScript
import { CloudDrivePagingOption, CloudDriveResourceInfo, CloudDriveResourceUploadStatus, ConversionOption } from './type';
import { EduStoreBase } from '../base';
import { CloudDriveResource, CloudDriveUploadingProgress } from './struct';
/**
* `CloudDriveStore` 类提供云盘相关能力。
*/
/** @en
* The `CloudDriveStore` class provides abilities related the cloud drive.
*/
export declare class CloudDriveStore extends EduStoreBase {
/**
* 云盘个人资源文件列表
*/
/** @en
* Personal resources
*/
personalResources: Map<string, CloudDriveResource>;
/**
* 云盘资源上传进度
*/
/** @en
* Progresses of resources
*/
uploadProgress: Map<string, CloudDriveUploadingProgress>;
private _checkpoints;
/**
* 取消上传资源
*
* @param resourceUuid 资源 ID
**/
/** @en
* Cancels uploading the file
*
* @param resourceUuid The resource ID
*/
cancelUpload(resourceUuid: string): Promise<void>;
/**
* 重新上传资源
*
* @param resourceUuid 资源 ID
**/
/** @en
* Retries uploading the file
* @param resourceUuid The resource ID
*/
retryUpload(resourceUuid: string): void;
/**
* 获取个人云盘资源
* @param options 分页参数
* @returns 云盘资源分页信息
**/
/** @en
* Gets all personal resources
* @param options The paging option
* @returns Cloud disk resource page information
*/
fetchPersonalResources(options: CloudDrivePagingOption): Promise<{
list: never[];
total: number;
}>;
private _initProgress;
/**
* @internal
*/
/** @en
* @internal
*/
_updateProgress(resourceUuid: string, progressValue?: number, status?: CloudDriveResourceUploadStatus): Promise<void>;
private _putFile;
/**
* 将已上传的资源文件映射为云盘内的一个文件
* @param resourceUuid 资源 UUID
* @param resourceInfo 资源信息
*/
/** @en
* Create a record that maps to the uploaded resource file
* @param resourceUuid Resource UUID
* @param resourceInfo Resource Info
*/
addPersonalResource(resourceUuid: string, resourceInfo: CloudDriveResourceInfo): Promise<any>;
/**
* 更新云盘文件信息
* @param resourceUuid
* @param resourceInfo
* @returns
*/
/** @en
* Updates the cloud drive file info
* @param resourceUuid
* @param resourceInfo
* @returns
*/
updatePersonalResource(resourceUuid: string, resourceInfo: Pick<CloudDriveResourceInfo, 'resourceName'>): Promise<any>;
/**
* 上传资源到云盘,上传后需要调用 addPersonalResource 方法创建一条资源对应的课件记录即可在云盘中使用。
* @param file 资源文件对象
* @param progressUuid 上传 UUID
* @param ext 资源扩展名
* @param contentType static: 静态, dynamic:动态
* @param conversion 转换选项
* @returns 上传成功后的文件信息
**/
/** @en
* Uploads a file to personal resources, addPersonalResource is required to call after uploading, which creates a record that will show in cloud drive.
* @param file The file
* @param progressUuid Progress UUID
* @param ext Extension name of the resource
* @param contentType static or dynamic
* @param conversion conversion options
* @returns Information about the uploaded file
*/
uploadPersonalResource(file: File, progressUuid: string, ext: string, contentType: string, conversion?: ConversionOption): Promise<{
ext: string;
resourceName: string;
resourceUuid: any;
url: string;
} | {
ext?: undefined;
resourceName?: undefined;
resourceUuid?: undefined;
url?: undefined;
} | undefined>;
/**
* 移除个人资源
* @param resourceUuids 资源 ID
**/
/** @en
* Removes files from personal resources
* @param resourceUuids The resource IDs
*/
removePersonalResources(resourceUuids: string[]): Promise<undefined>;
/**
* 计算资源文件 UUID
* @param resource
* @returns 资源文件 UUID
*/
/** @en
* Figure out a UUID for the resource file
* @param resource
* @returns Resource file UUID
*/
calcResourceUuid(resource: File | string): Promise<string>;
/**
* @internal
*/
/** @en
* @internal
*/
onInstall(): void;
/**
* @internal
*/
/** @en
* @internal
*/
onDestroy(): void;
}