1 | const fs = require('fs'),
|
2 | url = require('url'),
|
3 | request = require('request-promise'),
|
4 | mime = require('mime');
|
5 |
|
6 | const presignUrl = (s3FileName, fileName) => {
|
7 | const serviceUrl = `${process.env.DEPLOY_SERVICE_URL || process.env.MARKETPLACE_URL}/api/private/urls/presign-url`;
|
8 | const params = {
|
9 | fileName: s3FileName,
|
10 | contentLength: fs.statSync(fileName)['size'],
|
11 | contentType: mime.getType(fileName)
|
12 | };
|
13 |
|
14 | return request
|
15 | .get({
|
16 | url: serviceUrl,
|
17 | headers: {
|
18 | token: process.env.MARKETPLACE_TOKEN,
|
19 | marketplace_domain: url.parse(process.env.MARKETPLACE_URL).hostname,
|
20 | marketplace_endpoint: PARTNER_PORTAL_HOST
|
21 | },
|
22 | qs: params,
|
23 | json: true
|
24 | })
|
25 | .then(body => {
|
26 | return { uploadUrl: body.url, accessUrl: url.parse(body.accessUrl).href };
|
27 | });
|
28 | };
|
29 |
|
30 | module.exports = presignUrl;
|