Available since version 4.4.0
This feature is not AEM as a Cloud Service compatible; starting with the release 4.6.2 this feature is disabled on this platform (including the SDK).
This feature allows administrators to automatically retrieve files from a remote source and load them into the AEM repository. It will fetch a file from a URL, load the file into the AEM DAM as a
dam:Asset and then replicate the asset. It uses the HTTP responses status and will not perform any updates if a 304 status code is returned.
A common use case for this is hosting the Adobe Launch script on a 1st party instead of 3rd party domain to bypass ad blockers which may block the *.adobedtm.com domain.
File Fetcher configurations can be created manually via the OSGi Configuration Console:
The File Fetcher configuration supports the following attributes:
- DAM Path (damPath) - (required) The path under which to save the file, should start with /content/dam
- Headers (headers) - (optional) Headers to add to the request
- Mime Type (mimeType) - (required) The mime type of the asset to create
- Remote URL (remoteUrl) - (required) The URL from which to retrieve the file
- Update Cron Expression (scheduler.expression) - (required) - A cron expression on when to fetch the file
- Valid Response Codes (validResponseCodes) - (optional) - A list of response codes which are considered successful, 200 is default
- Connection Timeout (connectionTimeout) - (optional) - Maximum timeout for a connection response, 5000 is default
The recommended approach would be to create an OSGi configuration to include in your project. This would be created at:
/apps/[app-name]/config/com.adobe.acs.commons.filefetch.impl.FileFetcherImpl.[id].config with similar contents:
# Configuration created by Apache Sling JCR Installer remoteUrl="https://assets.adobedtm.com/6851bdae8e57/c0df7b4c5e8e/launch-ffc5d7ae4862-development.min.js" scheduler.expression="*\ *\ *\ *\ *" timeout=I"5000" validResponseCodes=i["200"] headers=[""] mimeType="application/json" damPath="/content/dam/launch.js"