如何在Artifactory Pro中更改工件的上次修改日期?

时间:2016-12-16 09:56:42

标签: derby artifactory filemtime

由于this,我在这里询问Stack Overflow。

我在Artifactory上创建了一个“通用”存储库,用于包含ZIP文件。 最初这些zip文件位于带有索引目录的Web服务器(Apache或Nginx)上。在同一台服务器(我们还有Maven,NuGet和Eclipse repos)上进行所有二进制下载更有意义,因此此举。

在网络服务器上,压缩文件的最后修改日期与最初上载时相同。

在Artifactory上,zip文件具有部署时的上次修改日期,即它们今天全部部署。

如何将Artifactory中的上次修改日期更改回原始日期?我查看了“属性”页面的文档,但如果这是我需要进行更改的话,对我来说并不明显。

或者我可以做一些像

这样的事情
touch -m -t [[CC]YY]MMDDhhmm[.SS] file.zip
在Artifactory的后端某处?

修改

这是/usr/local/artifactory/etc/storage.properties

的内容
type=derby
url=jdbc:derby:{db.home};create=true
driver=org.apache.derby.jdbc.EmbeddedDriver

## Determines where the actual artifacts binaries are stored. Available options:
## filesystem - binaries are stored in the filesystem (recommended, default)
## fullDb     - binaries are stored as blobs in the db, filesystem is used for caching
## cachedFS   - binaries are stored in the filesystem, but a front cache (with faster access) is added
## IMPORTANT NOTE: This property should not be change after the initial setup. To change binaries storage you have to export and import
#binary.provider.type=filesystem

/usr/local/artifactory/data/filestore中,我有十六进制编号的目录和文件,与原始文件名无关。但是,运行

find /usr/local/artifactory/data/filestore/ -type f -print0 \
  | xargs -0 file \
  | cut -d: -f2 \
  | sort \
  | uniq -c \
  | sort -nr

告诉我这些确实是我感兴趣的文件:

706  Zip archive data, at least v1.0 to extract
328  XML document text
 27  XML  document text
 26  exported SGML document, ASCII text, with CRLF line terminators
 22  Zip archive data, at least v2.0 to extract
 16  ASCII text
 14  ASCII text, with CRLF line terminators
  9  HTML document, ASCII text, with very long lines, with CRLF line terminators
  9  HTML document, ASCII text, with very long lines
  6  HTML document, ASCII text, with CRLF line terminators
  4  HTML document, ASCII text
  4  gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)
  4  exported SGML document, ASCII text
  3  PE32 executable (GUI) Intel 80386 (stripped to external PDB), for MS Windows

对于uninitiated:jar文件和nuget文件实际上是zip文件; POM文件实际上是xml文件等。我还随机打开了几个文件来确认他的。

这让我假设我可以通过在Derby数据库上运行查询来做到这一点,找出我需要的filestore目录中的哪个二进制blob,然后运行touch -m命令?

所以我的问题是:如何找出filestore目录中哪个二进制blob与哪个文件对应?其余的我可以为自己弄清楚。

当然,这假设Artifactory接受文件系统日期,并且不在其Derby数据库中存储日期。我不知道。如果确实如此,那我就回到原点。

0 个答案:

没有答案