Google-Cloud-Storage | Artifactory不删除bucket中的对象 &g



我们目前正在GCP上建立一个Artifactory Pro实例,并希望使用GCS作为其文件存储. 桶连接成功,通过Artifactory向桶上传和下载成功(使用通用的repo)。

然而:Artifactory不删除工件如果我们告诉它,通过GUI。工件被删除并消失在GUI中(垃圾桶在系统设置中被禁用),但继续存在于GCS的桶中。

这是我们的binarstore .xml:

<?xml version="1.0" encoding="UTF-8"?>
<config version="v1">
<chain>
<provider id="cache-fs" type="cache-fs">
<provider id="eventual" type="eventual">
<provider id="retry" type="retry">
<provider id="google-storage" type="google-storage"/>
</provider>
</provider>
</provider>
</chain>
<provider id="google-storage" type="google-storage">
<endpoint>commondatastorage.googleapis.com</endpoint>
<bucketName>rtfdev</bucketName>
<identity>xxx</identity>
<credential>xxx</credential>
<bucketExists>false</bucketExists>
<httpsOnly>true</httpsOnly>
<httpsPort>443</httpsPort>
</provider>
</config>

我们设置:

  • Artifactory 7.12.6
  • OS: Debian 10 (buster)
  • 机器类型:e2-highcpu-4 (4vcpu, 4gb内存)
  • 磁盘:200gb SSD

问题如下:.

  • 是否按预期工作?Artifactory从来没有删除过桶中的工件吗?
  • 一个相关的说明:我们如何说服Artifactory在与GCS的交互中更详细?(artifactory-binarystore.log可疑是空的,console.log也很安静…)

您没有看到工件被立即从存储中删除的原因是Artifactory正在使用基于校验和的存储。
TL;DR-一旦垃圾收集进程将工件从存储中删除,您将看到该工件从存储中删除。

Artifactory只存储一次二进制文件。这就是我们所说的"一次且仅一次存储"。第一次上传文件时,Artifactory在存储文件时运行所需的校验和计算,但是,如果再次上传文件(例如,上传到不同的位置),则上传被实现为一个简单的数据库事务,该事务创建另一个记录,将文件的校验和映射到它的新位置。实际上不需要将文件再次存储在存储器中。无论上传文件多少次,文件存储库都只承载该文件的一个副本。
删除文件也是一个简单的数据库事务,其中删除了相应的数据库记录。文件本身不会被直接删除,即使指向它的最后一个数据库条目被删除。所谓"orphaned"Artifactory的垃圾收集进程在后台删除文件。

相关内容

  • 没有找到相关文章

最新更新