@yuntools/ali-oss
Version:
阿里云 OSS 命令行工具 ossutil 封装,支持 ESM,CJS 导入,提供 TypeScript 类型定义
68 lines • 2.87 kB
JavaScript
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