towify-file-sdk
1. 资源类型校验
import {
FileSDKSupportedResourceTypeEnum,
ResourceTypeManager
} from 'towify-file-sdk';
const resourceTypeManager = new ResourceTypeManager({
file: DOM.File,
// FileSDK暴露出来的支持的资源类型的枚举
expectedType: FileSDKSupportedResourceTypeEnum.Video
});
// @return boolean
resourceTypeManager.validate();
2. 上传资源
2-1 Init
FileSDK.init({
appId: 'xxxxxxx',
appKey: 'xxxxxxx',
url: 'http://xxxxx.com',
token: '***'
});
2-2 上传图片
(async () => {
// 上传
const file = new FileSDK.Image({
name: '', // 若name为空,则取DOM.File.name
file: DOM.File,
folderId: '',
size: {
height: 300,
width: 300
}
});
const error = await file.save();
if (error) throw new Error(`File SDK Library: ${error}`);
// source: { pixel4x: '', pixel2x: '', pixel3x: '' }
file.source;
})();
2-3 上传音频
(async () => {
// 上传
const file = new FileSDK.Audio({
name: '', // 若name为空,则取DOM.File.name
file: DOM.File,
folderId: ''
});
const error = await file.save();
if (error) throw new Error(`File SDK Library: ${error}`);
// source: { origin: string }
file.source;
})();
2-4 上传视频
(async () => {
// 上传
const file = new FileSDK.Video({
name: '', // 若name为空,则取DOM.File.name
file: DOM.File,
folderId: ''
});
const error = await file.save();
if (error) throw new Error(`File SDK Library: ${error}`);
// source: { origin: string }
file.source;
})();
2-5 上传多个视频
上传多个资源时,source 返回数组,若上传出现问题,error 返回字符串,则 sourceList 将为空数组。
(async () => {
// 上传
const multipleUploader = new FileSDK.MultipleUploader();
multipleUploader.add(
new FileSDK.Video({
file: DOM.File
})
);
const error = await multipleUploader.save();
if (error) throw new Error(`File SDK Library: ${error}`);
// sourceList: [{ origin: '' }]
file.sourceList;
})();
2-6 上传多个音频
上传多个资源时,source 返回数组,若上传出现问题,error 返回字符串,则 sourceList 将为空数组。
(async () => {
// 上传
const multipleUploader = new FileSDK.MultipleUploader();
multipleUploader.add(
new FileSDK.Audio({
file: DOM.File
})
);
const error = await multipleUploader.save();
if (error) throw new Error(`File SDK Library: ${error}`);
// sourceList: [{ origin: '' }]
file.sourceList;
})();
2-7 上传多个图片
上传多个资源时,source 返回数组,若上传出现问题,error 返回字符串,则 sourceList 将为空数组。
(async () => {
// 上传
const multipleUploader = new FileSDK.MultipleUploader();
multipleUploader.add(
new FileSDK.Image({
file: DOM.File
})
);
const error = await multipleUploader.save();
if (error) throw new Error(`File SDK Library: ${error}`);
// sourceList: [{ pixel4x: '', pixel2x: '', pixel3x: '', origin: '' }]
file.sourceList;
})();
2-8 通过路径上传压缩包
// 直接引用CosGzipUploadHelper
import { CosGzipUploadHelper } from 'towify-file-sdk';
// 使用helper之前需要init
(async () => {
const result = await CosGzipUploadHelper.uploadByPath(
resolve(__dirname, '../static/mongodb-src-r4.4.6.tar.gz')
);
console.log(result);
})();
3. Publish Log
-
towify-file-sdk@0.0.18
- 图片 response headers 会根据 mimetype 识别 Content-Type
- 仅支持 'image/png', 'image/jpg', 'image/jpeg', 'image/gif', 'image/bmp', 'image/webp' 几种格式,否则会抛错
- 自定义 headers 用 encodeURIComponent()函数编码
- 上传图片时支持 folderId 字段
-
towify-file-sdk@0.0.21
- 优化接口
- 将上传中出现的异常信息作为 save()方法返回值抛出
- 实例化 FileSDK.File 时,name 字段为空将读取 DOM.File.name
- 增加测试用例
-
towify-file-sdk@0.0.22
- 优化接口
-
towify-file-sdk@0.0.23
- 优化接口
- 修改测试用例
-
towify-file-sdk@0.0.28
- 更改了存储桶
- 增加了 video/audio 上传
-
towify-file-sdk@0.0.32
- 增加了对视频资源类型的校验
- 发起 ajax 请求前先进行网络状况校验
- 增加了一些错误捕获,以确认偶发异常原因
-
towify-file-sdk@0.0.34
- 增加了资源类型校验 helper
-
towify-file-sdk@0.0.44
- 重构多文件上传