我正在" 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命令的工作原理?
答案 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中编写的路径,连续导出将无法正常工作。为了解决这个问题,我正在做以下事情:
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>