Ǐ 我正在 Docker 容器上运行我的 sonatype nexus 存储库,该容器托管在一个 Ec2 实例上。直到昨天为止都运行良好。
今天我尝试上传节点工件,但上传过程卡住了几分钟并抛出以下错误。
npm ERR! code E500
npm ERR! 500 Server Error - GET https://artifacts.quicko.com/repository/dev-group/@types%2fnode
此外,我无法通过任何 npmrc 文件登录到 nexus 存储库。我正在使用 Sonatype Nexus Repository ManagerOSS 3.41.1-0。
我尝试手动上传相同的工件,但它抛出以下错误。
One or more objects could not be deleted (Service: null; Status Code: 200; Error Code: null; Request ID: 4Y0T479TA4PYfwdse0XD1; S3 Extended Request ID: U+1VSeJIlpAYF+fajEJ+N/7BIb3bzO4SYuFc+jD####5/NdH8RTI4iFq#####ENYtTW8=; Proxy: null)
我检查了 docker 容器日志,但它也显示了 s3 的问题,我检查了提供给 Nexus 的凭证,该凭证上传到存储桶 blob 存储,它工作正常,所以我假设这不是存储桶或凭证的问题。
这是我在 docker 容器日志中发现的错误。
org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: PUT /repository/dev-private/@test-package%2fcore
com.amazonaws.services.s3.model.MultiObjectDeleteException: One or more objects could not be deleted
错误消息表明与上传工件和处理 S3 存储相关的问题。 这是我建议做的事情
测试上传不同类型的工件(例如 JAR 文件),看看问题是否特定于 npm 包。
尝试使用 npm login 命令手动登录,并在出现提示时提供必要的详细信息。
验证 Nexus 实例使用的 IAM 角色或凭证是否有足够的权限从 S3 存储桶中删除对象。
测试直接向 S3 存储桶上传和删除对象,看看是否可以在 Nexus 之外复制该问题。