如何在ruby中将zip文件上载到github发行版

如何在ruby中将zip文件上载到github发行版,ruby,file-upload,github,github-api,Ruby,File Upload,Github,Github Api,我正在尝试将zip文件自动上传到github上的repo版本。我正在使用它与Github的api进行交互。我可以通过这个库创建一个版本,但是当我试图上传我的zip文件时,只传输了前425个字节。以下是我上传文件的相关代码: files = Dir["<dir_containing_zipefile>"] files.each do |file| github.repos.releases.assets.upload "Owner", "Repo", id, File.abs

我正在尝试将zip文件自动上传到github上的repo版本。我正在使用它与Github的api进行交互。我可以通过这个库创建一个版本,但是当我试图上传我的zip文件时,只传输了前425个字节。以下是我上传文件的相关代码:

files = Dir["<dir_containing_zipefile>"]
  files.each do |file|

  github.repos.releases.assets.upload "Owner", "Repo", id, File.absolute_path(file),
    name: "#{File.basename file}",
    content_type: "application/zip"
end
files=Dir[“”]
文件。每个do |文件|
github.repos.releases.assets.upload“Owner”、“Repo”、id、File.absolute_路径(文件),
名称:“#{File.basename File}”,
内容类型:“应用程序/zip”
结束
我从以前的请求中获得
id
,并确保其正确无误。我还确保找到的文件是正确的文件(basename和absolute_path)。请求成功,但上载的文件只是整个文件的一部分

系统上的文件:

上载到github发行版后的文件:


从github下载文件后,我注意到425字节是build.zip的前425字节,但后来它似乎被截断了。以前有人遇到过这种情况吗?

使用
Net::HTTP

require 'net/http'
require 'json'

def attach(url, zipFilePath)
  data = File.open(zipFilePath, "rb") { |f| f.read }
  uri = URI.parse(url)
  request = Net::HTTP::Post.new(uri)
  request["Authorization"] = "Bearer #{YOUR_GITHUB_ACCESS_TOKEN}"
  request.content_type = 'application/zip'
  request.body = data
  response = Net::HTTP.start(uri.hostname, uri.port, { use_ssl: true }) { |http| http.request(request) }
  return JSON.parse(response.body)
end

你确定是前425字节吗?你下载下来看了吗?这并不是说你要上传绝对路径作为文件数据或任何东西?是的,我已经将原始zip文件与下载的文件进行了比较。前425个字节是相同的。