UNPKG

@yuntools/ali-oss

Version:

阿里云 OSS 命令行工具 ossutil 封装,支持 ESM,CJS 导入,提供 TypeScript 类型定义

68 lines 2.87 kB
import assert from 'node:assert'; import { pathIsCloudUrl, commonProcessInputMap, encodeInputPath, } from '../helper.js'; import { PlaceholderKey, } from '../types.js'; import { initOptions as uploadOptions } from './upload.js'; export const initOptions = { ...uploadOptions, delete: false, force: true, }; export async function processInputCloud(input, globalConfig) { const { encodeSource, encodeTarget } = input; const opts = { ...input, encodeSource: encodeSource ?? true, encodeTarget: encodeTarget ?? true, }; const map = commonProcessInputMap(opts, initOptions, globalConfig); assert(pathIsCloudUrl(map.get(PlaceholderKey.dest)), 'dest should be a cloud url'); assert(pathIsCloudUrl(map.get(PlaceholderKey.src)), 'src should be a cloud url'); const bucket = map.get(PlaceholderKey.bucket); assert(bucket, 'bucket is required'); assert(typeof bucket === 'string', 'bucket must be string'); return map; } export async function processInputRemote(input, globalConfig) { const { src, encodeSource } = input; assert(src, 'src is required'); const srcNew = typeof encodeSource === 'undefined' || encodeSource === true ? encodeInputPath(src, true) : src; const opts = { ...input, src: srcNew, encodeSource: false, }; const map = commonProcessInputMap(opts, initOptions, globalConfig); assert(pathIsCloudUrl(map.get(PlaceholderKey.dest)), 'dest should be a cloud url'); assert(!pathIsCloudUrl(map.get(PlaceholderKey.src)), 'src should not be a cloud url'); const bucket = map.get(PlaceholderKey.bucket); assert(bucket, 'bucket is required'); assert(typeof bucket === 'string', 'bucket must be string'); return map; } export async function processInputLocal(input, globalConfig) { const { target: dst, encodeSource, encodeTarget } = input; assert(dst, 'target is required'); const encode2 = !!(typeof encodeTarget === 'undefined' || encodeTarget === true); const dstNew = encode2 ? encodeInputPath(dst, true) : dst; const opts = { ...input, target: dstNew, encodeSource: encodeSource ?? true, encodeTarget: false, }; const map = commonProcessInputMap(opts, initOptions, globalConfig); assert(map.get(PlaceholderKey.dest), 'dest is required'); assert(map.get(PlaceholderKey.src), 'src is required'); assert(!pathIsCloudUrl(map.get(PlaceholderKey.dest)), 'dest should not be a cloud url'); assert(pathIsCloudUrl(map.get(PlaceholderKey.src)), 'src should be a cloud url'); const bucket = map.get(PlaceholderKey.bucket); assert(bucket, 'bucket is required'); assert(typeof bucket === 'string', 'bucket must be string'); map.set('encodeTarget', encode2); return map; } //# sourceMappingURL=sync.js.map