@uppy/companion
Version:
OAuth helper and remote fetcher for Uppy's (https://uppy.io) extensible file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Dropbox and Google Drive, S3 and more :dog:
28 lines (27 loc) • 845 B
JavaScript
import { getProtectedGot } from './helpers/request.js';
import { prepareStream } from './helpers/utils.js';
import logger from './logger.js';
/**
* Downloads the content in the specified url, and passes the data
* to the callback chunk by chunk.
*
* @param {string} url
* @param {boolean} allowLocalIPs
* @param {string} traceId
* @returns {Promise}
*/
export const downloadURL = async (url, allowLocalIPs, traceId, options) => {
try {
const protectedGot = getProtectedGot({ allowLocalIPs });
const stream = protectedGot.stream.get(url, {
responseType: 'json',
...options,
});
const { size } = await prepareStream(stream);
return { stream, size };
}
catch (err) {
logger.error(err, 'controller.url.download.error', traceId);
throw err;
}
};