You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中Octokit返回的含Uint8Contents的ArrayBuffer如何转存为tar文件

解决步骤

  1. 首先确保调用Octokit请求时指定了正确的响应格式,避免二进制数据编码错误:
const response = await octokit.request('GET /repos/{owner}/{repo}/tarball/{ref}', {
  owner: 'octocat',
  repo: 'hello-world',
  ref: 'ref',
  // 必须添加该配置,确保返回的是原始ArrayBuffer格式的二进制数据
  responseType: 'arraybuffer'
})
  1. 用Node.js内置的fs和path模块把返回的ArrayBuffer写入本地文件即可:
const fs = require('fs/promises') // 也可使用同步API:require('fs')
const path = require('path')

// 定义tar文件保存路径,示例为当前项目下downloads文件夹内的repo.tar
const savePath = path.join(__dirname, 'downloads', 'repo.tar')

// 将ArrayBuffer转换为Node.js可用的Buffer对象
const tarBuffer = Buffer.from(response.data)

// 异步写入文件
await fs.writeFile(savePath, tarBuffer)

// 同步写入可替换为以下代码
// fs.writeFileSync(savePath, tarBuffer)

额外说明

  • 写入前请确保目标文件夹(示例中的downloads文件夹)已存在,否则会报错。如需自动创建文件夹,可在写入前添加await fs.mkdir(path.join(__dirname, 'downloads'), { recursive: true })逻辑。
  • 如果你需要直接解压tar文件到指定目录而非保存为tar包,可以安装tar npm包,直接把Buffer传给解压方法即可。

内容的提问来源于stack exchange,提问作者Harald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:24:05