@platformos/pos-cli
Version:
Manage your platformOS application
57 lines (50 loc) • 1.48 kB
JavaScript
const fs = require('fs'),
url = require('url'),
request = require('request-promise'),
mime = require('mime');
const Portal = require('./portal');
const deployServiceUrl = () => process.env.DEPLOY_SERVICE_URL || url.resolve(process.env.MARKETPLACE_URL, '/api/private/urls');
const presignUrl = (s3FileName, fileName) => {
const serviceUrl = `${deployServiceUrl()}/presign-url`;
const params = {
fileName: s3FileName,
contentLength: fs.statSync(fileName)['size'],
contentType: mime.getType(fileName)
};
return request
.get({
url: serviceUrl,
headers: {
token: process.env.MARKETPLACE_TOKEN,
marketplace_domain: url.parse(process.env.MARKETPLACE_URL).hostname,
marketplace_endpoint: Portal.HOST
},
qs: params,
json: true
})
.then(body => {
return { uploadUrl: body.url, accessUrl: url.parse(body.accessUrl).href };
});
};
const presignDirectory = path => {
const serviceUrl = `${deployServiceUrl()}/presign-directory`;
const params = { directory: path };
return request
.get({
url: serviceUrl,
headers: {
token: process.env.MARKETPLACE_TOKEN,
marketplace_domain: url.parse(process.env.MARKETPLACE_URL).hostname,
marketplace_endpoint: Portal.HOST
},
qs: params,
json: true
})
.then(body => {
return body;
});
};
module.exports = {
presignUrl: presignUrl,
presignDirectory: presignDirectory
};