12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- const qiniu = require('qiniu');
- const { ACCESS_KEY, SECRET_KEY, bucket, endpoint, prefix } = require('../config').qiniu;
- const expires = 7200;
- const mac = new qiniu.auth.digest.Mac(ACCESS_KEY, SECRET_KEY);
- const putPolicy = new qiniu.rs.PutPolicy({
- scope: bucket,
- insertOnly: 1,
- expires,
- });
- const config = new qiniu.conf.Config();
- // config.useHttpsDomain = true;
- config.zone = qiniu.zone.Zone_z1;
- const bucketManager = new qiniu.rs.BucketManager(mac, config);
- const utils = {
- async getToken() {
- const token = putPolicy.uploadToken(mac);
- return { data: token, endpoint, prefix };
- },
- async deleteVideo(video) {
- const bucket = 'fuxi-video';
- const key = video.slice(video.lastIndexOf('fuxicarbon.com') + 15);
- const prefix = key.slice(0, key.lastIndexOf('.'));
- bucketManager.listPrefix(bucket, { prefix, limit: 1000 }, (err, respBody, respInfo) => {
- if (err) {
- console.log(err);
- throw err;
- }
- if (respInfo.statusCode === 200) {
- const { items } = respBody;
- const deleteOperations = [
- qiniu.rs.deleteOp('fuxicarbon', key),
- // qiniu.rs.deleteOp(bucket, `${link}/`),
- ];
- items.forEach(item => {
- deleteOperations.push(qiniu.rs.deleteOp(bucket, item.key));
- });
- bucketManager.batch(deleteOperations, (err, respBody, respInfo) => {
- if (err) {
- console.log(err);
- // throw err;
- } else {
- // 200 is success, 298 is part success
- console.log(respInfo);
- }
- });
- } else {
- console.log(respInfo.statusCode);
- console.log(respBody);
- }
- });
- },
- getAuthUrl(url) {
- const index = url.indexOf('.com/') + 4;
- return bucketManager.privateDownloadUrl(
- url.slice(0, index),
- url.slice(index + 1),
- parseInt(Date.now() / 1000) + 3600
- );
- },
- };
- module.exports = utils;
|