简介
关于上传到S3,本文服务模块使用的是‘aws-sdk’ putObject()上传。UI模块使用的是antd中的upload组件,在使用antd组件的时候发现官方提供的上传方式有两种:
- 使用路径上传,antd中有一个属性action需要上传到的地址。
- 使用自定义上传,antd中的customRequest。 本文选用的是第二种,自定义上传会覆盖组件默认的上传行为,所以我们需要去定义progress、onSuccess、onError。 本文会使用到的技术:React,Rxjs,采用TSLint校验。
先看简单的dom模块
不多说直接上代码,一个简单的自定义上传。
import React from 'react';
import { Subject } from 'rxjs';
import { Upload } from "antd";
import {IS3Config, Upload$ } from "../../../core/services/s3service";
interface IParam {
onProgress: ({ }, f: UploadFile) => void;
onSuccess: () => void;
onError: () => void;
file: UploadFile & { webkitRelativePath: string };
}
export default class UploadComponent extends React.<