gitea を使用した s3 上の GIt lfs はクローンできません

gitea を使用した s3 上の GIt lfs はクローンできません

gitea のテストインストールを行っており、gitea lfs to 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

それはうまくいきました。リポジトリを作成し、lfs 構成を使用して別のリポジトリをクローンしました。すべての lfs ファイルをコミットしてプッシュし、すべてを s3 にアップロードできました。素晴らしいですね。

しかし、リポジトリのクローンを作成するときに問題が発生しました。クローンでは 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 つのファイルを取得しようとしているだけですが、それでも機能しません。

誰かそれを見たことがありますか?

答え1

私も同じ問題を抱えていましたが、根本的な原因はわかりません。どうやら、git-lfs クライアントの何かが、gitea が提供している直接/署名付き S3 URL を好まないようです。

私の解決策は を設定することでしたSERVE_DIRECT = false。これは基本的に、すべての LFS オブジェクトを gitea 経由でプロキシしてからクライアントに返すというものです。

関連情報