1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
const express = require('express');
const mutipart = require('connect-multiparty');
const COS = require('cos-nodejs-sdk-v5');
const config = { temporaryUploadDir: './temporary', defaultPort: 3000, secretId: 'AKIDsipmK32L..XXXXX..OuOtbSDFpair', secretKey: 'VzSwGaimpHj..XXXXX..IoQAn1FMMSVcUz', bucket: 'ludis-1252396698', region: 'ap-beijing', preUrl: 'ghost/images/flutter', domain: 'ludis-1252396698.image.myqcloud.com', rule: '!ghost' }
const cos = new COS({ SecretId: config.secretId, SecretKey: config.secretKey });
const mutipartMiddeware = mutipart(); const app = express();
app.use(mutipart({ uploadDir: config.temporaryUploadDir })); app.set('port', process.env.PORT || config.defaultPort); app.listen(app.get('port'), function () { console.log(`Express started on http://localhost: ${app.get('port')} ; press Ctrl-C to terminate.`); });
app.post('/upload', mutipartMiddeware, (req, res) => { const { name, path } = req.files.file upload(name, path, url => { if (url) res.json({ url: url }) else res.send('upload failed!') }) });
const upload = (name, path, callback) => { cos.sliceUploadFile({ Bucket: config.bucket, Region: config.region, Key: `${preUrl}/${name}`, FilePath: path }, function (err, data) { console.log(err, data); if (err) { callback(null) } else { callback(`https://${config.domain}/${data.Key}${config.rule}`) } }); }
|