mingdao-attachment-upload
v0.1.1
Published
明道云附件上传工具,支持 SaaS/私有部署、ESM/CJS、TypeScript 类型定义
Downloads
175
Maintainers
Readme
mingdao-attachment-upload
明道云附件上传工具,封装了:
- 获取上传 token(
/api/Qiniu/GetUploadToken或私有部署地址) - 上传到七牛接口(SaaS 或私有部署地址)
- 生成明道云附件字段值(对象 / JSON 字符串)
支持:
- ESM + CJS 双格式产物
- TypeScript 类型定义(
d.ts) tsup构建npm publish发布流程
安装
npm install mingdao-attachment-uploadNode 环境要求:
>=18(内置fetch/FormData)
ESM 使用示例
import {
createMingdaoAttachmentUploader,
buildMingdaoAttachmentValueText,
} from 'mingdao-attachment-upload';
const uploader = createMingdaoAttachmentUploader({
mdPssId: 'md_pss_id_xxx',
projectId: 'project-id',
appId: 'app-id',
worksheetId: 'worksheet-id',
deployment: 'saas', // 或 private / auto
});
const uploaded = await uploader.uploadImage(file);
const valueText = buildMingdaoAttachmentValueText([uploaded]);上传返回数据
uploader.uploadImage(file) 与 uploader.uploadToQiniu(...) 返回结构一致:
interface MingdaoUploadedAttachment {
url: string;
serverName: string;
key: string;
filePath: string;
fileName: string;
fileExt: string;
originalFileName: string;
fileSize: number;
rawTokenInfo: Record<string, unknown>;
rawUploadResponse: Record<string, unknown>;
}示例:
{
"url": "https://dn-static.mingdao.com/folder/demo.png",
"serverName": "https://dn-static.mingdao.com",
"key": "folder/demo.png",
"filePath": "folder/",
"fileName": "demo",
"fileExt": ".png",
"originalFileName": "demo",
"fileSize": 1024,
"rawTokenInfo": {
"uptoken": "***",
"key": "folder/demo.png",
"serverName": "https://dn-static.mingdao.com"
},
"rawUploadResponse": {
"key": "folder/demo.png",
"serverName": "https://dn-static.mingdao.com"
}
}CJS 使用示例
const {
createMingdaoAttachmentUploader,
buildMingdaoAttachmentValue,
} = require('mingdao-attachment-upload');
const uploader = createMingdaoAttachmentUploader({
mdPssId: 'md_pss_id_xxx',
projectId: 'project-id',
appId: 'app-id',
worksheetId: 'worksheet-id',
});
// const uploaded = await uploader.uploadImage(file);
const value = buildMingdaoAttachmentValue([
{
key: 'folder/demo.png',
serverName: 'https://dn-static.mingdao.com',
fileName: 'demo',
fileExt: '.png',
originalFileName: 'demo',
fileSize: 1024,
},
]);私有部署示例
import { createMingdaoAttachmentUploader } from 'mingdao-attachment-upload';
const uploader = createMingdaoAttachmentUploader({
deployment: 'private',
baseUrl: 'https://md.your-company.com',
mdPssId: 'md_pss_id_xxx',
projectId: 'project-id',
appId: 'app-id',
worksheetId: 'worksheet-id',
});