我正在尝试自动将zip文件上传到github上的repo上的发行版。我正在使用github_api与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
我从先前的请求中获取id
并确保这是正确的。我还确保找到的文件是正确的文件(basename和absolute_path)。请求成功,但上传的文件只是整个文件的一部分。
系统档案:
上传到github发布后的文件:
从github下载文件后,我注意到425字节是我build.zip的第一个425字节,但后来它似乎被截断了。有没有人遇到过这个?
答案 0 :(得分:0)
使用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