如何将zip文件上传到ruby中的github版本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将zip文件上传到ruby中的github版本相关的知识,希望对你有一定的参考价值。

我正在尝试自动将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字节,但后来它似乎被截断了。有没有人遇到过这个?

答案

使用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

以上是关于如何将zip文件上传到ruby中的github版本的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on rails - 压缩和下载pdf文件

如何通过 CLI 将 zip 文件上传和部署到 AWS elastic beanstalk?

如何在不使用 Ruby 保存到磁盘的情况下生成 zip 文件?

如何将本地代码上传到github

Grails 3 Web界面,通过表单将zip上传到服务器上的文件夹

如何用Git将本地项目上传到Github