JGit S3 仅支持标准美国存储桶?

And*_*ris 2 amazon-s3 jgit

除了美国标准的 S3 存储桶之外,是否可以使用 JGit 的其他位置(即通过配置文件等),还是我在这里做错了什么?

如果我尝试将位于 EU 的 S3 存储桶与 JGit 一起使用,jgit 会抛出错误

-> jgit push origin master
Counting objects:       3
Finding sources:        100% (3/3)
Getting sizes:          100% (2/2)
Compressing objects:    100% (1/1)
Writing objects:        100% (3/3)
java.lang.NullPointerException
    at org.eclipse.jgit.transport.AmazonS3.error(AmazonS3.java:518)
    at org.eclipse.jgit.transport.AmazonS3.putImpl(AmazonS3.java:505)
        ...
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用位于美国标准的存储桶时,一切正常。

-> git push origin master
Counting objects:       3
Finding sources:        100% (3/3)
Getting sizes:          100% (2/2)
Compressing objects:    100% (1/1)
Writing objects:        100% (3/3)
Put pack-132548a..idx:  100% (1/1)
To amazon-s3://.jgit@usreponame/chef-receipes.git
 * [new branch]      master -> master
Run Code Online (Sandbox Code Playgroud)

Kev*_*cki 5

NullPointerException是由于 JGit 中的错误而发生的。Amazone S3 API 返回的代码既不是 200 也不是 500,并且 JGit 尝试从连接读取错误流,并且不防范空错误流。

我在这里提出了针对此问题的修复建议。

应用此更改后,实际的响应代码应出现在异常消息中,这将有望阐明失败的原因。