Мы делаем тестовую установку 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, но при попытке получить файлы lfs на s3 я получаю следующее сообщение:
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 не любит прямые/подписанные URL-адреса S3, которые обслуживает gitea.
Моим решением была настройка SERVE_DIRECT = false
, которая по сути проксирует все объекты LFS обратно через gitea, прежде чем возвращать их клиенту.