Обновление: этот вопрос раньше задавался о Google Cloud Storage, но с тех пор я понял, что проблема на самом деле является воспроизводимой, просто пытаясь сохранить загрузку на локальный диск. Таким образом, я перефразирую вопрос, чтобы целиком относиться к загрузке файлов в Typescript и больше не упоминать Google Cloud Storage.
При попытке загрузить и сохранить файл в Typescript с помощью WebRequests (хотя у меня возникла та же проблема с requests
и request-promises
), кажется, что весь код выполняется правильно, но результирующий файл поврежден и не может быть просмотрен. Например, если я загружаю изображение, файл не отображается ни в одном приложении.
// Seems to work correctly
const download = await WebRequest.get(imageUrl);
// `Buffer.from()` also takes an `encoding` parameter, but it's unclear how to determine the encoding of a download
const imageBuffer = Buffer.from(download.content);
// I *think* this line is straightforward
const imageByteArray = new Uint8Array(imageBuffer);
// Saves a corrupted file
const file = fs.writeFileSync("/path/to/file.png", imageByteArray);
Я подозреваю, что проблема заключается в вызове Buffer.from
, который неправильно интерпретирует загруженный контент, но я неуверен, как сделать это правильно. Любая помощь будет принята с благодарностью.
Большое спасибо!