【问题标题】:In Artifactory Unable to download debian file immediately after uploading在 Artifactory 上传后无法立即下载 debian 文件
【发布时间】:2020-11-09 07:54:59
【问题描述】:

我已经使用以下命令上传了一个 debian 文件

curl -H -u$ARTIFACTORY_USER:$ARTIFACTORY_TOKEN -XPUT "http://artifactory-url/artifactory/debian/pool/$package;deb.distribution=trusty;deb.component=main;deb.architecture=all" -T $package

我无法通过apt-get update && apt-get download $package 10 分钟后下载文件。得到“无法找到包裹”。

但是当我通过 UI 上传文件时,它会在一分钟后变为可用。 此外,当我单击重新索引时,它会在一分钟后变为可用。

我正在我们的 CI 管道中执行此操作,上传到工件后,我需要该工件在一分钟内可用以进行下一步。在这种情况下我该怎么办?为什么通过 curl 上传不索引包?

【问题讨论】:

    标签: debian artifactory jfrog


    【解决方案1】:

    要通过 apt-get 下载 Debian 软件包,必须更新存储库索引。
    当 Debian 软件包部署到本地存储库时,一个用于索引该存储库的相关子路径的事件被添加到队列中。
    专门的 Debian 元数据工作人员(默认为 8 个,可配置)不断处理该队列。
    这意味着,一旦 Debian 软件包被上传,如果队列为空且有可用的 worker,它将开始处理事件并索引元数据。
    索引通过为包括存储库 (debian-local/dists/xenial) 的整个分发路径创建锁来工作。一旦工作人员开始为存储库和分发的特定组合建立索引,当锁存在时,另一个工作人员将不会开始为同一路径的另一个事件建立索引。
    10分钟被认为完成索引的时间很长(大约需要1m)。这可能发生在已加载的系统中,或者当许多 Debian 软件包部署到同一分发路径时。

    您可以使用artifactory.system.properties 中的以下系统属性调整工作人员的数量:

    artifactory.debian.metadata.calculation.workers = 8
    

    您还可以通过调用Calculate Debian Repository Metadata REST API 方法来强制同步计算整个存储库的元数据。
    有关 Artifactory Debian 索引计算调优和调试的更多信息,请咨询以下knowledge base article

    【讨论】:

    • 非常感谢@Dror Bereznitsky 我会试试这个并更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多