123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- function UserFactory(name, file, client, res, callback) {
- function OSS() {
- var suffix = file.name.substr(file.name.indexOf("."));
- var obj = uploadName();
- var storeAs = obj + suffix;
- client.multipartUpload(storeAs, file).then(function (result) {
- var url = result.res.requestUrls[0];
- var length = url.lastIndexOf('?');
- var imgUrl = url.substr(0, length);
- callback(imgUrl, file, 3);
- }).catch(function (err) {
- console.log(err);
- });
- }
- function COS() {
- var selectedFile = file;
- filename = selectedFile.name;
- filename = uploadName(filename);
- client.putObject({
- Bucket: res.bucket,
- Region: res.region,
- Key: filename,
- StorageClass: 'STANDARD',
- Body: selectedFile,
- }, function (err, data) {
- callback("http://" + data.Location, file, 4);
- });
- }
- function QINIU() {
- var files = file;
- var key = uploadName();
- var token = client; //从服务器拿的并存在本地data里
- var putExtra = {
- fname: '',
- params: {},
- mimeType: null,
- };
- var config = {
- useCdnDomain: true, //使用cdn加速
- };
- var observable = qiniu.upload(files, key, token, putExtra, config);
- observable.subscribe({
- next: (result) => {
- // 主要用来展示进度
- console.warn(result);
- },
- error: (err) => {
- console.log(err);
- },
- complete: (re) => {
- callback("http://" + res.region + "/" + re.key, file, 2);
- },
- });
- }
- function uploadName() {
- const data =
- ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
- "s", "t", "u", "v", "w", "x", "y", "z"];
- let nums = "";
- for (let i = 0; i < 32; i++) {
- const r = parseInt(Math.random() * 35);
- nums += data[r];
- }
- return nums;
- }
- switch (name) {
- case 'OSS':
- return new OSS();
- break;
- case 'COS':
- return new COS();
- break;
- case 'QINIU':
- return new QINIU();
- break;
- }
- }
|