Necesito obtener la extensión de archivo de un enlace de descarga, actualmente estoy usando el siguiente script (extracto de React hook)
// ... useEffect(() => { /// ... void (async () => { try { setIsLoading(true); const response = await fetch(downloadLink); const blob = await response.blob(); setFileExtension(fileExtensionByMimeType[blob.type]); } finally { setIsLoading(false); } })(); }, []); // .... Este código funciona, pero el problema es que response.blob() toma tiempo en relación con el tamaño del archivo, y supongo que mi solución es mala.
¿Quizás hay alguna forma elegante de resolver mi problema?
Mi error, acabo de descubrir que tengo todos los encabezados que necesito, me confundieron con los headers vacíos :
Resulta que no está vacío y puedo obtener mi tipo de mimo con este código:
const response = await fetch(downloadLink, { method: 'HEAD' }); const mimeType = response.headers.get('content-type'); Además, creo que HEAD es apropiado aquí.