使用 gitea 在 s3 上进行 GIt lfs 无法克隆

使用 gitea 在 s3 上进行 GIt lfs 无法克隆

我们正在对 gitea 进行测试安装,并尝试使用 gitea lfs 到 s3 功能。配置很简单,我们这样做了:

[lfs]
#PATH = /opt/gitea/data/lfs
STORAGE_TYPE = minio
MINIO_ACCESS_KEY_ID = KEY
MINIO_SECRET_ACCESS_KEY = SECRET
MINIO_BUCKET = NAME
MINIO_LOCATION = us-east-1
MINIO_USE_SSL = true
SERVE_DIRECT = true
MINIO_ENDPOINT = s3.us-east-1.amazonaws.com

成功了,我创建了一个 repo,并用 lfs 配置克隆了另一个可用的 repo。我成功提交并推送了所有 lfs 文件,它将所有内容上传到了 s3。太棒了。

但是现在我在克隆 repo 时遇到一个问题,克隆确实获取了 git 文件,但是当尝试获取 s3 上的 lfs 文件时,我收到此消息:

Error downloading object: FILE (hash): Smudge error: Error downloading  FILE (hash): LFS: Get "https://NAME.s3.dualstack.us-east-1.amazonaws.com/lfs/PATHTOFILE": dial tcp: lookup NAME.s3.dualstack.us-east-1.amazonaws.com on IP:53: dial udp IP:53: socket: too many open files

据我所知,它只是尝试获取一个文件,但即使这样也不起作用。

以前有人见过吗?

答案1

我遇到了同样的问题,但我不确定根本原因是什么。看来 git-lfs 客户端中的某些东西不喜欢 gitea 提供的直接/签名 S3 URL。

我的解决方案是设置SERVE_DIRECT = false,它基本上将所有 LFS 对象通过 gitea 代理回来,然后将它们返回给客户端。

相关内容