towify-file-sdk
TypeScript icon, indicating that this package has built-in type declarations

0.0.91 • Public • Published

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

    • 重构多文件上传

Readme

Keywords

Package Sidebar

Install

npm i towify-file-sdk

Weekly Downloads

1

Version

0.0.91

License

ISC

Unpacked Size

70.1 kB

Total Files

51

Last publish

Collaborators

  • kaysaith