如何授予“git lfs”访问我自己托管的 MinIO 实例的权限?

如何授予“git lfs”访问我自己托管的 MinIO 实例的权限?

我有一个 MinIO 服务器,其设置如下(docker compose):

services:
  minio:
    image: minio/minio
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      MINIO_ACCESS_KEY: <your-access-key>
      MINIO_SECRET_KEY: <your-secret-key>
    volumes:
      - ./data:/data
    command: server /data --console-address :9001

据我所知,到目前为止一切顺利。我创建了一个名为的存储桶git-lfs,我可以按如下方式测试它:

$ ~/Downloads/mc.exe ls my-minio
[2023-05-03 09:35:41 CEST]     0B git-lfs/

看起来好像我可以访问。

我的 git 配置中有以下部分:

[lfs]
        locksverify = false
        storage = minio
        url = http://10.0.10.196:9000/git-lfs
        accesskey = <your-access-key>
        secretkey = <your-secret-key>
        repositoryformatversion = 0
[filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge --skip -- %f
        process = git-lfs filter-process --skip
        required = true

访问密钥和秘密密钥已从该帖子中删除。

所以......问题是,每当我尝试将任何应该进入 lfs 服务器的内容推送到 lfs 服务器时,我都会收到以下响应:

$ git push origin lfsstuff
Uploading LFS objects:   0% (0/6), 0 B | 0 B/s, done.
batch response: Client error: http://10.0.10.196:9000/git-lfs/objects/batch
error: failed to push some refs to 'git+ssh://my-git-server-here/~/Repositories/ProjectHere.git'

桶仍然是空的,而我得到的回应http://10.0.10.196:9000/git-lfs/objects/batch是:

<Error>
  <script/>
  <Code>NoSuchKey</Code>
  <Message>The specified key does not exist.</Message>
  <Key>objects/batch</Key>
  <BucketName>git-lfs</BucketName>
  <Resource>/git-lfs/objects/batch</Resource>
  <RequestId>175BEAF87C025894</RequestId>
  <HostId>e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</HostId>
</Error>

因此,显然写访问或缺少密钥存在问题。但我不知道如何继续调试或修复它。从我能找到的所有文档来看,这应该已经可以正常工作了……但事实并非如此。如果您能提供任何建议,我将不胜感激。

编辑:

正如 larsks 所说,MinIO 实际上并不支持 git lfs api。

我很想在两者之间放置一个兼容的服务器,如下所述这里(github 上的 jasonwhite/rudolfs),但我似乎无法让它工作。我在 github 上的 rudolfs 讨论中添加了一个问题。

相关内容