UNPKG

node-nim

Version:

NetEase IM nodejs wrapper based on NetEase IM C++ SDK

221 lines 7.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.V2NIMStorageService = void 0; const loader_1 = __importDefault(require("../loader")); const eventemitter3_1 = require("eventemitter3"); /** @brief 存储服务 */ class V2NIMStorageService extends eventemitter3_1.EventEmitter { constructor(instanceId) { super(); this.instance = new loader_1.default.V2NIMStorageService({ emit: this.emit.bind(this) }, instanceId); } /** * @brief 添加自定义存储场景, 需在登录前调用 * @param sceneName 自定义存储场景 * @return void * @example * ```javascript * v2.storageService.addCustomStorageScene(sceneName, expireTime) * ``` */ addCustomStorageScene(sceneName, expireTime) { this.instance.addCustomStorageScene(sceneName, expireTime); } /** * @brief 创建文件上传任务 * @param fileParams 文件上传的相关参数 * @return V2NIMUploadFileTask * @example * ```javascript * const task = v2.storageService.createUploadFileTask({ * filePath: 'file_path' * }) * ``` */ createUploadFileTask(fileParams) { return this.instance.createUploadFileTask(fileParams); } /** * @brief 文件上传 * @param fileTask 文件上传任务 * @param progress 上传进度回调 * @returns Promise<string> * @example * ```javascript * const url = await v2.storageService.uploadFile({ * taskId: 'task_id', * uploadParams: { * filePath: 'file_path' * } * }) * ``` */ uploadFile(fileTask, progress) { return new Promise((resolve, reject) => { this.instance.uploadFile(fileTask, (url) => { resolve(url); }, (error) => { reject(error); }, (progressValue) => { progress(progressValue); }); }); } /** * @brief 取消文件上传 * @param fileTask 文件上传任务 * @returns Promise<void> * @example * ```javascript * await v2.storageService.cancelUploadFile({ * taskId: 'task_id' * }) * ``` */ cancelUploadFile(fileTask) { return new Promise((resolve, reject) => { this.instance.cancelUploadFile(fileTask, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 下载文件 * @param url 文件下载地址 * @param filePath 文件保存路径 * @param progressCallback 下载进度回调 * @returns Promise<string> 下载文件的 Promise 对象 * @example * ```javascript * const savePath = await v2.storageService.downloadFile(url, filePath, progressCallback) * ``` */ downloadFile(url, filePath, progressCallback) { return new Promise((resolve, reject) => { this.instance.downloadFile(url, filePath, (savePath) => { resolve(savePath); }, (error) => { reject(error); }, (progress) => { progressCallback(progress); }); }); } /** * @brief 取消下载文件 * @param url 文件下载地址 * @returns Promise<void> 取消下载文件的 Promise 对象 * @example * ```javascript * await v2.storageService.cancelDownloadFile(url) * ``` */ cancelDownloadFile(url) { return new Promise((resolve, reject) => { this.instance.cancelDownloadFile(url, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 查询存储场景列表 * @returns Array<V2NIMStorageScene> * @example * ```javascript * const scenes = v2.storageService.getStorageSceneList() * ``` */ getStorageSceneList() { return this.instance.getStorageSceneList(); } /** @brief 长链接转短链接 * @param shortUrl 短链接地址 * @returns Promise<string> 长链接的 Promise 对象 * @example * ```javascript * const longUrl = await v2.storageService.shortUrlToLong(shortUrl) * ``` */ shortUrlToLong(shortUrl) { return new Promise((resolve, reject) => { this.instance.shortUrlToLong(shortUrl, (longUrl) => { resolve(longUrl); }, (error) => { reject(error); }); }); } /** * @brief 下载消息附件 * @param downloadParam 下载参数 * @param progress 下载进度回调 * @returns Promise<string> 下载文件的 Promise 对象 * @example * ```javascript * const savePath = await v2.storageService.downloadAttachment({ * attachment, * type: 0, * }, (progress) => { * console.log(progress) * }) * ``` */ downloadAttachment(downloadParam, progress) { return new Promise((resolve, reject) => { this.instance.downloadAttachment(downloadParam, (savePath) => { resolve(savePath); }, (error) => { reject(error); }, (prog) => { progress(prog); }); }); } /** * @brief 获取图片消息中的图片缩略图 * @param attachment 消息附件 * @param thumbSize 图片缩略图的尺寸,若不指定则使用默认 150x150 * @returns Promise<V2NIMGetMediaResourceInfoResult> 获取图片缩略图的 Promise 对象 * @example * ```javascript * const result = await v2.storageService.getImageThumbUrl(attachment, thumbSize) * ``` */ getImageThumbUrl(attachment, thumbSize) { return new Promise((resolve, reject) => { this.instance.getImageThumbUrl(attachment, thumbSize, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 获取视频消息中的视频缩略图 * @param attachment 消息附件 * @param thumbSize 视频缩略图的尺寸,若不指定则使用默认 150x150 * @returns Promise<V2NIMGetMediaResourceInfoResult> 获取视频缩略图的 Promise 对象 * @example * ```javascript * const result = await v2.storageService.getVideoCoverUrl(attachment, thumbSize) * ``` */ getVideoCoverUrl(attachment, thumbSize) { return new Promise((resolve, reject) => { this.instance.getVideoCoverUrl(attachment, thumbSize, (result) => { resolve(result); }, (error) => { reject(error); }); }); } } exports.V2NIMStorageService = V2NIMStorageService; //# sourceMappingURL=v2_nim_storage_service.js.map