【问题标题】:Artifactory JAR signing virtual repo not caching local snapshot repoArtifactory JAR 签名虚拟仓库不缓存本地快照仓库
【发布时间】:2017-06-02 17:47:52
【问题描述】:

我有一个本地 Artifactory 服务器,其中定义了一堆本地存储库。我已经设置了一个虚拟存储库并将其配置为对通过它检索到的任何 JAR 文件进行签名。

libs-signed 虚拟存储库连接到 libs-staging-locallibs-snapshot-local,因此您可以从这两个存储库中获取任何 jar,并通过我们的证书对其进行签名。

如果我通过签名虚拟存储库从暂存存储库中获取 JAR,第一次我必须等到签名过程完成,但由于虚拟存储库缓存,此后对同一工件的任何请求都很快。

但是,如果我通过签名虚拟存储库从快照存储库中获取 JAR,我总是在 JAR 被签名时得到等待时间(并且我已经验证 jarsigner 进程每次都在服务器上启动)。因此,源自快照存储库的签名工件不会被缓存。我已确保在两次提取之间没有添加任何新的快照版本,因此原始(未签名)文件完全相同。

有人知道这是怎么回事吗?如何让虚拟存储库缓存签名的快照 JAR?

【问题讨论】:

  • 您是在创建唯一的还是非唯一的快照?
  • 如果非唯一是指我们是否有多个相同版本号的 JAR(例如 5.25-SNAPSHOT),那么是的。如果我进入 Artifactory UI,我可以看到该版本后面的 10 个 JAR(每个都标有时间戳)。但是,如果您两次获取相同的 JAR,我希望 Artifactory 会缓存。

标签: artifactory


【解决方案1】:

缓存行为取决于非唯一快照的解析方式。
如果通过请求具体的时间戳工件来解析快照,则签名的 .jar 将被缓存,例如:

http://localhost:8081/artifactory/libs-snapshot/org/jfrog/test/multi1/3.5-SNAPSHOT/multi1-3.5-20170105.183200-4.jar

但是如果通过请求解析快照 - 签名的 .jar 将不会被缓存,例如:

http://localhost:8081/artifactory/libs-snapshot/org/jfrog/test/multi1/3.5-SNAPSHOT/multi1-3.5-SNAPSHOT.jar

原因是此类请求的返回工件可能会更改,并且通过缓存它,Artifactory 可能会返回错误的工件。

【讨论】:

  • 实际上并没有解决我的问题,但看起来这个答案是“正确的”。但是,Artifactory 应该能够意识到之前是否已经请求并检索了非时间戳工件 URL 后面的工件(并因此被缓存)。我很失望它没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 2018-12-05
  • 2020-03-05
  • 1970-01-01
相关资源
最近更新 更多