cky-image-public
Version:
public image to public host
68 lines (62 loc) • 1.75 kB
JavaScript
const fs = require("fs");
const async = require('async');
const dropboxV2Api = require('dropbox-v2-api');
let helper = require('../helper');
class Dropbox {
constructor (options = {}) {
let { token } = options;
this.dropbox = dropboxV2Api.authenticate({
token
});
}
upload (imgPath, callback) {
let __path = imgPath.split('/');
async.waterfall([
(next) => {
this.dropbox({
resource: 'files/upload',
parameters: {
path: `/${__path[__path.length - 1]}`,
mode: "add",
autorename: true,
mute: false,
strict_conflict: false
},
readStream: fs.createReadStream(imgPath)
}, (err, result) => {
//upload completed
// console.log('upload: ', JSON.stringify(result));
return next(err, result);
});
},
(upload, next) => {
this.dropbox({
resource: 'sharing/create_shared_link_with_settings',
parameters: {
path: upload.id,
settings: {
requested_visibility: "public",
audience: "public",
access: "viewer"
}
}
}, (err, result, response) => {
// console.log('shared:', JSON.stringify(result));
return next(err, result);
});
},
/*(shared, next) => {
this.dropbox({
resource: 'sharing/get_file_metadata',
parameters: {
file: shared.id,
}
}, (err, result, response) => {
// console.log('metadata:', JSON.stringify(result));
return next(err, result);
});
}*/
], callback);
}
}
module.exports = Dropbox;