gpt4 book ai didi

javascript - fs.writeFileSnyc/fs.writeFile 写入损坏的文件

转载 作者:行者123 更新时间:2023-12-01 01:49:52 28 4
gpt4 key购买 nike

我正在调用 Google 云端硬盘的下载 API,然后我想使用 fs.writeFilefs.writeFileSync 在本地写入下载的文件。这就是我正在做的事情:

    const writeFile = util.promisify(fs.writeFile)
const file_from_google = await axios.get(`https://www.googleapis.com/drive/v3/files/${id}?alt=media`,
{headers:
{'Authorization': `Bearer ${someToken}`},
},)
const fullPath = path.join(__dirname, '..', 'downloads','testFile.docx')
writeFile(fullPath, file_from_google.data)

虽然它确实在指定目录中为我创建了文件,但无论执行 writeFilewriteFileSync,文件都会损坏。我还尝试直接使用 fs.writeFileSync 而不是 promise 它。几乎每次我收到的损坏文件都比原始文件大小大。有人可以告诉我什么是将下载的文件正确写入目录的好方法吗?

最佳答案

您需要将 responseType: 'arraybuffer' 选项添加到 axios.get

const writeFile = util.promisify(fs.writeFile)
const file_from_google = await axios.get(`https://www.googleapis.com/drive/v3/files/${id}?alt=media`,
{responseType: 'arraybuffer, headers:
{'Authorization': `Bearer ${someToken}`},
},)
const fullPath = path.join(__dirname, '..', 'downloads','testFile.docx')
writeFile(fullPath, file_from_google.data)

关于javascript - fs.writeFileSnyc/fs.writeFile 写入损坏的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51637632/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com