|
1 | 1 | /* eslint-disable valid-jsdoc */ |
2 | 2 | const fs = require('fs'); |
| 3 | +const path = require('path'); |
3 | 4 | const { DownloadCenter } = require('@mongodb-js/dl-center'); |
4 | 5 | const download = require('download'); |
5 | 6 |
|
@@ -50,15 +51,21 @@ const uploadManifest = async(manifest) => { |
50 | 51 | return dlCenter.uploadConfig(MANIFEST_OBJECT_KEY, manifest); |
51 | 52 | }; |
52 | 53 |
|
53 | | -const downloadAssetFromEvergreen = async({ name, path: dest }) => { |
54 | | - requireEnvironmentVariables([ |
55 | | - 'EVERGREEN_BUCKET_NAME', |
56 | | - 'EVERGREEN_BUCKET_KEY_PREFIX' |
57 | | - ]); |
58 | | - const bucket = process.env.EVERGREEN_BUCKET_NAME; |
59 | | - const key = `${process.env.EVERGREEN_BUCKET_KEY_PREFIX}/${name}`; |
60 | | - const url = `https://${bucket}.s3.amazonaws.com/${key}`; |
61 | | - return await download(url, dest); |
| 54 | +const downloadAssetFromEvergreen = ({ name, path: dest }) => { |
| 55 | + return new Promise(async(resolve, reject) => { |
| 56 | + requireEnvironmentVariables([ |
| 57 | + 'EVERGREEN_BUCKET_NAME', |
| 58 | + 'EVERGREEN_BUCKET_KEY_PREFIX' |
| 59 | + ]); |
| 60 | + const bucket = process.env.EVERGREEN_BUCKET_NAME; |
| 61 | + const key = `${process.env.EVERGREEN_BUCKET_KEY_PREFIX}/${name}`; |
| 62 | + const url = `https://${bucket}.s3.amazonaws.com/${key}`; |
| 63 | + const stream = download(url); |
| 64 | + await fs.promises.mkdir(path.dirname(dest), { recursive: true }); |
| 65 | + stream.pipe(fs.createWriteStream(dest)); |
| 66 | + stream.on('end', resolve); |
| 67 | + stream.on('error', reject); |
| 68 | + }); |
62 | 69 | }; |
63 | 70 |
|
64 | 71 | module.exports = { |
|
0 commit comments