Gitea LFS 提交大文件超时的问题解决

2024年8月19日 390点热度 0人点赞 0条评论

Gitea LFS 提交大文件超时的问题解决

使用 Git 向自建的 Gitea 通过 LFS 上传大文件时,经常会出现因为文件大小超过 Nginx 配置 或者 Git 配置,或者 Git LFS 配置,导致文件无法成功上传的问题。

⚠️:这里的上传 6.6 GB  后超时,实际文件时没有这么大的,目前显示这么大的原因都是因为超时重试导致的重复内容。

em@eMacBook-Pro Archive % git push
Uploading LFS objects:  97% (31/32), 6.6 GB | 4.8 MB/s, done.
LFS: Put "https://gitea.yiem.net/xxxxx/Archive.git/info/lfs/objects/c7dd8xxxxxxxxxxxxxxxxxxe40066b0e87bf7e722a70fc6f662cfe0684d4367a/635621763": read tcp 10.10.1.12:50760->192.168.1.1:443: i/o timeout
error: failed to push some refs to 'https://gitea.yiem.net/xxxxx/Archive.git'

Gitea LSF 提交大文件超时的问题解决

 

解决方法 - Nginx 配置

nginx 示例:

http
{
    # 示例
    server_names_hash_bucket_size 512;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_body_buffer_size 50m;
    client_max_body_size 50000m;

    # 如果网站使用的反向代理,还需要配置反向代理参数
    proxy_buffering on;
    proxy_buffer_size 4k;
    proxy_buffers 512 4k;
    proxy_busy_buffers_size 64k;
    proxy_cache_path /www/server/openresty/nginx/proxy_cache_temp levels=1:2 keys_zone=mw_cache:512m inactive=5m max_size=2g use_temp_path=off;
    #proxy timeout
    proxy_connect_timeout 500s;
    proxy_read_timeout 2000s;
    proxy_send_timeout 2000s;
}

 

Nginx 文件大小 核心参数:  client_max_body_size

Nginx 反向代理 核心参数:proxy_connect_timeout  proxy_read_timeout proxy_send_timeout

 

解决方法 - Gitea 配置

解决方法 - Gitea 配置

 

解决方法 - Git 与 Git LFS 配置

 

filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
lfs.httptimeout=6200
lfs.dialtimeout=3600
lfs.tlstimeout=1200
lfs.concurrenttransfers=1
lfs.activitytimeout=3600
http.postbuffer=524288000

Git 与 Git LSF 配置

添加方式:

# 类型下面命令 git config --global 为固定内容,lfs.activitytimeout 为你需要添加的参数, 3600 为参数的值,可以是数值、Bool(true)

git config --global lfs.activitytimeout 3600


# 查下添加结果,查询 Git 全局配置

git config --global -l

 

 

 

⚠️:需要上述每个环节都要符合

最终上传成功结果

上传成功

 

 

帮助教程

提供最新的帮助教程,方便使用。

文章评论