我如何上传一个zip文件到ruby的github发布
问题描述:
我试图自动上传一个zip文件到github上的一个repo版本上。我使用github_api与Github的API进行交互。我可以通过该库创建发行版,但是当我尝试上传zip文件时,只传输了前425个字节。这是我与上传文件代码:我如何上传一个zip文件到ruby的github发布
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个字节是第425我的build.zip字节,但它似乎被截断。有没有人遇到过这个?
答
使用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个字节?你有没有下载它看到?这不是像你上传绝对路径作为文件数据或任何东西? – 2015-02-11 20:32:15
是的,我已将原始zip文件与下载的文件进行了比较。前425个字节是相同的。 – 2015-02-11 20:35:26