VLT工具' " vlt export"命令不会覆盖

时间:2016-11-17 20:33:59

标签: aem

我正在" vlt"命令 (文件库 - Jackrabbit FileVault预先包装在AEM VLT Tool

vlt --credentials admin:admin export -v http://localhost:4502/crx /content/dam/geometrixx-outdoors/activities /Users/temp/data

以上命令工作正常,并在" geometrixx-outdoors / activities"中导出资产。到 jcr_root META-INF 文件夹。如果缺少这些文件夹,该命令甚至会创建它们。

但是如果使用不同的(geometrixx / portraits)和相同的目的地(/ Users / temp / data)运行相同的命令,如:

vlt --credentials admin:admin export -v http://localhost:4502/crx /content/dam/geometrixx/portraits /Users/temp/data

命令错误消息 [错误]不是这样的远程文件:/ content / dam / geometrixx / portraits

但是,如果我使用不同的目标文件夹(/ Users / temp / data / new),则相同的命令有效:

 vlt --credentials admin:admin export -v http://localhost:4502/crx /content/dam/geometrixx/portraits /Users/temp/data/new

我缺少什么?或者这是vlt export命令的工作原理?

2 个答案:

答案 0 :(得分:1)

您的第一个vlt export会生成一个META-INF/vault/filter.xml,它会限制内容根目录,只允许导入限制/预设路径。

如果要将内容导入到同一文件夹,则必须更新filter.xml以允许您要导入的所有路径。

答案 1 :(得分:1)

根据Ameesh Trikha的建议,我开发了一个shell脚本来使用VLT Tools' 导出命令到同一目标文件夹。

每次执行 vlt export 命令时,都会创建 jcr_root META-INF 文件夹。 META-INF将配置文件和jcr_root映射保存到jcr的源路径。导出的文件位于此处。

如果我们为您的所有导出使用相同的目标文件夹,由于在filter.xml中编写的路径,连续导出将无法正常工作。为了解决这个问题,我正在做以下事情:

  • / content 作为路径制作filter.xml的副本(我将其称为主过滤器)。由于jcr中的所有内容通常都在此范围内,因此任何源路径上的任何导出都将起作用。
  • 由于我们计划为所有导出使用相同的目标文件夹,因此请删除现有的filter.xml文件并将其替换为上述主过滤器

shell脚本的副本:

#!/bin/bash
# This script is used to export the contents from AEM CRX to an external folder.
# $1 - Source path from where the files need to be copied from
# $2 - Destination path where the files need to be copied to
#
# Step 1 - Make sure the vault-cli sources are in path
export PATH=$PATH:/Users/Software/vault-cli-3.1.16/bin
#
# Step 2 - vlt overwrites/creates the filter.xml with the source path. We need this to be removed as consecutive exports will not work if the path is not set to the source. To avoid this we remove the filter.xml and copy a file that has /content as the root so any export will work.
echo $'***Resetting filter.xml for the export...'
rm -f $2/META-INF/vault/filter.xml
cp -f /Users/temp/data/filter.xml $2/META-INF/vault
echo $'***Completed resetting filter.xml'
#
# Step 3
echo $'***Starting to execute vlt command...'
vlt --credentials admin:admin export -v http://localhost:4502/crx $1 $2
echo $'***Completed vlt command successfully'

主过滤器的副本

<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
  <filter root="/content">
    <exclude pattern="/content/jcr:system"/>
    <exclude pattern="/content/var/classes"/>
    <exclude pattern="^.*/rep:accessControl"/>
  </filter>
</workspaceFilter>