首页 > 系统相关 >解决Gerrit+Nginx+Git LFS传大文件失败的问题

解决Gerrit+Nginx+Git LFS传大文件失败的问题

时间:2024-10-12 16:33:20浏览次数:1  
标签:git 传大 objects 1322768648 Gerrit Git lfs https com

首先有两个位置要放开限制:
一是nginx这边上传文件大小要放开。
编辑/etc/nginx/conf.d/gerrit.conf:

client_max_body_size 500m

二是gerrit这边lfs的大小限制要放开。
拉取All-Projects仓库,执行
$ git fetch origin refs/meta/config
$ git checkout FETCH_HEAD

然后添加一个lfs.config文件:

[lfs "^.*"]
    enable = true
    maxObjectSize = 500m

然后,此时大文件还是有可能上传失败。

在上传时添加参数 GIT_TRACE=1,例如:
$ GIT_TRACE=1 git push

此时可以看到失败的具体日志,类似于这样:

09:30:12.440819 trace git-lfs: HTTP: {"objects":[{"oid":"860271f6f95cf47738284624ce76052a39bfd9589eb0bdb12df569f752f2a259","size":1322768648,"actions":{"upload":{"href":"https://git.myhost.com/mygroup/myproject.git/gitlab-lfs/objects/860271f6f95cf47738284624ce76052a39bfd9589eb0bdb12df569f752f2a259/1322768648","header":{"Authorization":"Basic c2VyZ2lvcnlhbjpleUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKa1lYUmhJanA3SW1GamRHOXlJam9pYzJWeVoybHZjbmxoYmlKOUxDSnFkR2tpT2lJeU1ERXdaRFF3WXkxbVptUTVMVFJpTkdVdE9XVXlOQzFrTUdZMk1UWmpNV0l5TnpN
{"objects":[{"oid":"860271f6f95cf47738284624ce76052a39bfd9589eb0bdb12df569f752f2a259","size":1322768648,"actions":{"upload":{"href":"https://git.myhost.com/mygroup/myproject.git/gitlab-lfs/objects/860271f6f95cf47738284624ce76052a39bfd9589eb0bdb12df569f752f2a259/1322768648","header":{"Authorization":"Basic c2VyZ2lvcnlhbjpleUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKa1lYUmhJanA3SW1GamRHOXlJam9pYzJWeVoybHZjbmxoYmlKOUxDSnFkR2tpT2lJeU1ERXdaRFF3WXkxbVptUTVMVFJpTkdVdE9XVXlOQzFrTUdZMk1UWmpNV0l5TnpN09:30:12.440819 trace git-lfs: HTTP: aUxDSnBZWFFpT2pFMU9UQXlNREV3TVRNc0ltNWlaaUk2TVRVNU1ESXdNVEF3T0N3aVpYaHdJam94TlRrd01qQXlPREV6ZlEuekhrWWJSWEpOR3E1Z3pjdlVRcVIyTG5LV2Q1Q2MyTk5pd3JBN0stQmgzQQ==","Content-Type":"application/octet-stream"}}}}]}
aUxDSnBZWFFpT2pFMU9UQXlNREV3TVRNc0ltNWlaaUk2TVRVNU1ESXdNVEF3T0N3aVpYaHdJam94TlRrd01qQXlPREV6ZlEuekhrWWJSWEpOR3E1Z3pjdlVRcVIyTG5LV2Q1Q2MyTk5pd3JBN0stQmgzQQ==","Content-Type":"application/octet-stream"}}}}]}09:30:12.440819 trace git-lfs: xfer: adapter "basic" End()

注意到 其中的一段json,里面可能有"expired_in": 10(上面的例子我随便找的,没有这个字段,你可以看你的有没有,有的话多半是这里的问题),猜测就是这里超时时间太短导致的。

修改$GERRIT_SITE/etc/lfs.config:

[fs]
    expirationSeconds = 3600

然后可以简单验证一下:
$ ssh -p $GERRIT_PORT -- $username@$GERRIT_IP git-lfs-authenticate $REPOSITORY upload
此时可以看到返回的json中expired_in字段已经变大。

再次上传大文件,成功。

参考:
https://gerrit.googlesource.com/plugins/lfs/+show/master/src/main/resources/Documentation/config.md
https://www.helpdocshub.com/2415.html

标签:git,传大,objects,1322768648,Gerrit,Git,lfs,https,com
From: https://www.cnblogs.com/tomwillow/p/18460822

相关文章

  • github action的使用
    近年来,我一直在使用jenkins来部署自己的项目,发现太耗内存了,因此将自动化部迁的操作改为使用githubaction。初始化action配置选择一个合适的action类型,比如webpack、gitPage、Nodejs等等。比如我这里选择了webpack,选择完成后可以看到在仓库里多了一个文件.github/workflo......
  • Git上爆火《开源大模型食用指南》self-llm(附文档)已发布,速通大模型!
    前言《开源大模型食用指南》是一个围绕开源大模型、针对国内初学者、基于AutoDL平台的中国宝宝专属大模型教程,针对各类开源大模型提供包括环境配置、本地部署、高效微调等技能在内的全流程指导,简化开源大模型的部署、使用和应用流程,让更多的普通学生、研究者更好地使用......
  • 查看Github 发行版下载次数
    比如我在Github上开源了软件,并且在Release里面发布了版本,但是Githubrelease页面并没有下载统计次数的页面展示。下面列举的几个可以查看Release各个版本的下载量。1.https://somsubhra.github.io/github-release-stats/?username=hupo376787&repository=WeiboAlbumDownloader&......
  • Git使用
    《git使用》实验报告实验名称: xxxxxxxxxxxxxxx   学 号xxxxx姓 名xxx班 级xxx实验地点xxxx实验日期xxxxx指导教师xxx功能实现截图及核心代码解释:(可附页)一、实验目的熟悉Git客户端的安装与使用。掌握在GitHub上创建组织和仓库的方法......
  • OP设置SSH-绑定GitHub账户
    OP设置SSH-绑定GitHub账户https://github.com/dragonpilot-community/dragonpilot_wiki/blob/master/cn/how_to_setup_github_ssh.md从0.83开始,安装好OP后会删掉原来通用的ssh密钥信息,无法进行ssh/sftp登录。若需要登录,需要在OP里面绑定GitHub账户里头的ssh公钥。一、快捷偷懒......
  • git的提取和拉取有啥区别
    在Git中,“提取”(fetch)和“拉取”(pull)是两个不同的概念,它们分别对应不同的操作行为:提取(Fetch)gitfetch命令主要用于从远程仓库下载最新的提交信息到本地仓库,但它不会自动合并这些信息到当前的工作分支。这给了开发者一个机会去查看远程仓库的最新状态,然后再决定是否要将这......
  • 使用Git将文件上传到GitHub和Gitee
    目录今天为大家带来一篇超级简单但是非常实用的Git教程,一分钟即可将文件上传到GitHub仓库(或者Gitee)中,很多教程教学的非常全面,但是我认为初学就应该使用最简单的方法,才能保证后续充满动力,更全面的学习!还请各位客官接着往下看!1.初始化目录文件夹1.找到目标文件夹(你想上传代码......
  • [Git] git stash命令详解
     前言目录gitstash-mgitstashlistgitstashpopgitstashapplyindexgitstashdropindexgitstashclear特定范围文件储存gitstash[-S|--staged]gitstash[-u|--include-untracked]gitstash[-a|--all]将当前未提交的修改(即工作区和暂存区的修改)......
  • github加速
    Github一般用于Git的远程仓库,由于服务器位于国外,国内访问速度比较慢,为了提高访问速度,绕过DNS域名解析。获取Github的IP地址按下ctrl+alt+T打开命令终端,输入:nslookupgithub.com 获取github.global.ssl.fastly.net的IP地址按下ctrl+alt+T打开命令终端,输入:nslookupgithub.global......
  • 从0开始将本地git链接至github
    前言本文仅仅使用ssh将本地git链接至github,仅做本人记录使用。步骤1:创建一个Git仓库来存放dotfiles创建一个目录来存储dotfiles。通常,使用~/dotfiles作为存储位置。mkdir~/dotfiles初始化Git仓库:在dotfiles目录中初始化一个新的Git仓库。cd~/dotfile......