1
Моя цель - программно перемещать активы. Я обнаружил, что AssetManager имеет метод moveAsset. Однако у меня возникают проблемы с инициализацией объекта AssetManager в моем оригинальном скрипте. Ниже приведен код, с которым я работаю. Как инициализировать ненулевой объект AssetManager?Инициализация AssetManager в Groovy Console
import javax.jcr.query.*
import com.day.cq.dam.api.*
def query = createSQL2Query("/content/dam/3d-renders/application-notes/wcc-migration") //CHANGE THIS
def result = query.execute()
def rows = result.rows
rows.each { row ->
Resource res = resourceResolver.getResource(null,row.path)
AssetManager am = res.adaptTo(AssetManager.class)
am.getAsset('/content/dam/3d-renders/application-notes/wcc-migration/Q60_ILL000347_iAPP.psd')
println res.path + ' ' + am
//am.moveAsset('/content/dam/3d-renders/application-notes/wcc-migration/2015/Q3X-Color-Mark-Sensing.psd','/content/dam/3d-renders/test-folder/Q3X-Color-Mark-Sensing.psd')
}
def createSQL2Query(startPage) {
def queryManager = session.workspace.queryManager
def statement = "select * from [nt:base] as p where (isdescendantnode (p, '$startPage')) and p.[jcr:primaryType] = 'dam:Asset'"
def query = queryManager.createQuery(statement, Query.JCR_SQL2)
query
}
Как насчет 'AssetManager am = resourceResolver.adaptTo (AssetManager.class)'? 'ResourceResolver' реализует' Adaptable', в котором используется метод 'adaptTo (Class)'. См. Https://docs.adobe.com/docs/en/cq/5-6-1/javadoc/com/adobe/granite/asset/api/AssetManager.html –
Это сработало, однако, если я это сделаю. assetExists ('/ content/dam/3d-renders/application-notes/wcc-migration/Q60_ILL000347_iAPP.psd') ', он выдает сообщение об ошибке« Нет сигнатуры метода ». Есть предположения? – Blaris
Я не вижу метод 'AssetManager.assetsExists()' в API. 'getAsset()' возвращает null, если ресурс не существует, поэтому вы должны его использовать. И Groovy предоставляет ярлык; ex: 'if (am.getAsset ('blah')) {/ * актив найден * /}'. Хотя, честно говоря, я не знаю, о чём я говорю. Я просто нашел API онлайн и сделал вывод оттуда. –