1const Apify = require('apify');
2const rp = require('request-promise');
3const path = require('path');
4const url = require('url');
5
6Apify.main(async () => {
7 const input = await Apify.getInput();
8 console.log('Input:');
9 console.dir(input);
10
11 const {fileUrl} = input;
12
13
14
15
16 const proxyUrl = Apify.getApifyProxyUrl();
17 console.log('Using proxy:')
18 console.log(proxyUrl)
19 const res = await rp({url: fileUrl, encoding: null, resolveWithFullResponse: true, proxy: proxyUrl});
20 const buffer = Buffer.from(res.body, 'utf8');
21 const fileName = path.parse(url.parse(fileUrl).pathname).base;
22 const contentType = res.headers['content-type'];
23
24 console.log('File downloaded:');
25 console.log({name: fileName, contentType: contentType});
26
27 await Apify.setValue(fileName, buffer, {contentType: contentType});
28
29 const storeId = Apify.getEnv().defaultKeyValueStoreId;
30 const resultUrl = `https://api.apify.com/v2/key-value-stores/${storeId}/records/${fileName}?disableRedirect=true`;
31
32 console.log('File is saved at:');
33 console.log(resultUrl);
34
35 await Apify.setValue('OUTPUT', {url: resultUrl});
36});