@xuanqikai/one-click-upload
Version:
A CLI tool for one-click file upload to cloud storage services (OSS, TOS)
95 lines • 4.25 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.OneClickUpload = exports.UploadCommand = exports.ConfigCommand = exports.UploaderFactory = exports.TOSUploader = exports.OSSUploader = exports.BaseUploader = exports.ConfigManager = void 0;
// 导出主要的类和接口
var ConfigManager_1 = require("./config/ConfigManager");
Object.defineProperty(exports, "ConfigManager", { enumerable: true, get: function () { return ConfigManager_1.ConfigManager; } });
var BaseUploader_1 = require("./uploaders/BaseUploader");
Object.defineProperty(exports, "BaseUploader", { enumerable: true, get: function () { return BaseUploader_1.BaseUploader; } });
var OSSUploader_1 = require("./uploaders/OSSUploader");
Object.defineProperty(exports, "OSSUploader", { enumerable: true, get: function () { return OSSUploader_1.OSSUploader; } });
var TOSUploader_1 = require("./uploaders/TOSUploader");
Object.defineProperty(exports, "TOSUploader", { enumerable: true, get: function () { return TOSUploader_1.TOSUploader; } });
var UploaderFactory_1 = require("./uploaders/UploaderFactory");
Object.defineProperty(exports, "UploaderFactory", { enumerable: true, get: function () { return UploaderFactory_1.UploaderFactory; } });
// 导出类型定义
__exportStar(require("./types"), exports);
// 导出工具函数
__exportStar(require("./utils/fileUtils"), exports);
// 导出命令
var ConfigCommand_1 = require("./commands/ConfigCommand");
Object.defineProperty(exports, "ConfigCommand", { enumerable: true, get: function () { return ConfigCommand_1.ConfigCommand; } });
var UploadCommand_1 = require("./commands/UploadCommand");
Object.defineProperty(exports, "UploadCommand", { enumerable: true, get: function () { return UploadCommand_1.UploadCommand; } });
// 主要的上传功能
const ConfigManager_2 = require("./config/ConfigManager");
const UploaderFactory_2 = require("./uploaders/UploaderFactory");
/**
* 一键上传功能的主要接口
*/
class OneClickUpload {
constructor() {
this.configManager = new ConfigManager_2.ConfigManager();
}
/**
* 上传文件或目录
*/
async upload(options) {
const service = this.configManager.getService(options.serviceName);
if (!service) {
throw new Error(`Service '${options.serviceName}' not found`);
}
const uploader = UploaderFactory_2.UploaderFactory.createUploader(service);
return await uploader.upload(options.localPath, options.remotePath, {
overwrite: options.overwrite,
enableResume: options.enableResume,
maxRetries: options.maxRetries,
chunkSize: options.chunkSize
});
}
/**
* 批量上传文件
*/
async uploadBatch(files, serviceName, options) {
const service = this.configManager.getService(serviceName);
if (!service) {
throw new Error(`Service '${serviceName}' not found`);
}
const uploader = UploaderFactory_2.UploaderFactory.createUploader(service);
return await uploader.uploadBatch(files, options);
}
/**
* 获取配置管理器
*/
getConfigManager() {
return this.configManager;
}
/**
* 获取所有可用的服务
*/
getAvailableServices() {
return this.configManager.getAllServices();
}
/**
* 获取默认服务
*/
getDefaultService() {
return this.configManager.getDefaultService();
}
}
exports.OneClickUpload = OneClickUpload;
//# sourceMappingURL=index.js.map