File Fetcher

Available since version 4.4.0

AEM as a Cloud Service incompatible!

This feature is not AEM as a Cloud Service compatible, and can only be used on AEM 6.5.

Introduction

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.

Usage

File Fetcher configurations can be created manually via the OSGi Configuration Console:

Configuring the File Fetcher

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"