node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
221 lines • 7.1 kB
JavaScript
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
;