51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import { toTextFile } from '../app';
|
||
import { ConvertOpts, uploadFileChunked } from './upload-chunk';
|
||
/**
|
||
* 对创建的directory的路径进行解析,
|
||
* 如果是 nameA/nameB/nameC 则创建 nameA/nameB/nameC
|
||
*
|
||
* 不能以.开头,不能以.结尾,不能以/开头,不能以/结尾。
|
||
* @param directory
|
||
* @param opts
|
||
* @returns
|
||
*/
|
||
export const createDirectory = async (directory: string = '', opts?: ConvertOpts) => {
|
||
const directoryPath = directory || opts?.directory;
|
||
const error = '目录名不能以.开头,不能以.结尾,不能以/开头,不能以/结尾,不能包含//';
|
||
const errorMsg = () => {
|
||
return {
|
||
code: 400,
|
||
message: error,
|
||
success: false,
|
||
};
|
||
};
|
||
if (directoryPath) {
|
||
if (directoryPath.startsWith('.')) {
|
||
return errorMsg();
|
||
}
|
||
if (directoryPath.endsWith('.')) {
|
||
return errorMsg();
|
||
}
|
||
if (directoryPath.startsWith('/')) {
|
||
return errorMsg();
|
||
}
|
||
if (directoryPath.endsWith('/')) {
|
||
return errorMsg();
|
||
}
|
||
if (directoryPath.includes('//')) {
|
||
return errorMsg();
|
||
}
|
||
}
|
||
const res = await uploadFileChunked(toTextFile('keep directory exist', 'keep.txt'), {
|
||
directory,
|
||
...opts,
|
||
});
|
||
return res as {
|
||
code: number;
|
||
message?: string;
|
||
success?: boolean;
|
||
data?: any;
|
||
[key: string]: any;
|
||
};
|
||
};
|