Interface AssetManager


public interface AssetManager
The AssetManager provides utility methods for assets.

The asset manager can be retrieved as follows:

   ...
   AssetManager manager = resourceResolver.adaptTo(AssetManager.class);
   ...
 
  • Method Details

    • restore

      Asset restore(String revisionId) throws Exception
      Restores an Asset.
      Parameters:
      revisionId - revision id
      Returns:
      the restored Asset
      Throws:
      Exception - Upon encountering an error while restoring an asset.
    • getRevisions

      Collection<Revision> getRevisions(String path, Calendar cal) throws Exception
      Lists all available Revisions.
      Parameters:
      path - path of asset
      cal - starting date to search revisions or null in order to fetch all
      Returns:
      all available Revisions
      Throws:
      Exception - Upon encountering an error while getting the revisions for an asset.
    • createAssetForBinary

      @Deprecated Asset createAssetForBinary(String binaryPath, boolean doSave)
      Deprecated.
      In AEM as a Cloud Service, assets should instead take advantage of direct binary access. A discussion of this change as well as an SDK to ease implementation of this new pattern can be found at aem-upload.
      This method creates the complete asset structure in /content/dam. The following structure is created: <xmp> + file.jpg (dam:Asset) + jcr:content )(dam:AssetContent) + renditions (sling:OrderedFolder) + metadata (nt:unstructured)

      </xmp>

      The given binaryPath is translated into the final asset location (see DamUtil.binaryToAssetPath(String)).

      Parameters:
      binaryPath - The path of the asset's binary in /var/dam.
      doSave - Whether the repository changes are saved or not.
      Returns:
      The newly created asset or null if the binaryPath cannot be handled
      See Also:
    • getAssetForBinary

      @Deprecated Asset getAssetForBinary(String binaryPath)
      Deprecated.
      This method was used by an older paradigm of asset upload, where a binary would be uploaded to /var with an asset separately created under /content. In AEM as a Cloud Service, assets should instead take advantage of direct binary access. As a result, this method should no longer be needed. A discussion of this change as well as an SDK to ease implementation of this new pattern can be found at aem-upload.
      Returns the Resource of the Asset corresponding to the binary given with the path parameter.
         DamUtil.getAssetNode("/var/dam/myfolder/test.jpg", session)    =  Resource("/content/dam/myfolder/test.jpg")
       
      Parameters:
      binaryPath - The path of the binary.
      Returns:
      The resource representing the binary's asset, or null if it couldn't be found.
      See Also:
    • removeAssetForBinary

      @Deprecated boolean removeAssetForBinary(String binaryPath)
      Deprecated.
      This method was used by an older paradigm of asset upload, where a binary would be uploaded to /var with an asset separately created under /content. In AEM as a Cloud Service, assets should instead take advantage of direct binary access. As a result, this method should no longer be needed. A discussion of this change as well as an SDK to ease implementation of this new pattern can be found at aem-upload.
      Removes the Node of the Asset corresponding to the binary given with the path parameter.
         DamUtil.removeAssetNode("/var/dam/myfolder/test.jpg", session) =i> Delete Node("/content/dam/myfolder/test.jpg")
       
      Parameters:
      binaryPath - The path of the binary.
      Returns:
      true if the asset was successfully removed.
      See Also:
    • createAsset

      @Deprecated Asset createAsset(String path, InputStream is, String mimeType, boolean doSave)
      Deprecated.
      In AEM as a Cloud Service, assets should instead take advantage of direct binary access. A discussion of this change as well as an SDK to ease implementation of this new pattern can be found at aem-upload.
      Creates a new Asset at the given path. If an asset already exists at the given path, its original rendition is updated instead of creating a new asset. If inputStream is null new Asset is created without original rendition. If an asset already exists at given path and inputstream is null, original rendition is not updated.
      Parameters:
      path - The path of the asset to be created.
      is - The input stream of the new asset's original binary.
      mimeType - The mime type of the new asset's original binary.
      doSave - Whether the repository changes are saved or not.
      Returns:
      The newly created asset or null if something exists at the given path already or there was an unexpected error
      See Also:
    • createOrUpdateAsset

      @Deprecated Asset createOrUpdateAsset(String path, Binary binary, String mimeType, boolean doSave)
      Deprecated.
      In AEM as a Cloud Service, assets should instead take advantage of direct binary access. A discussion of this change as well as an SDK to ease implementation of this new pattern can be found at aem-upload.
      Creates a new Asset at the given path. If an asset already exists at the given path, its original rendition is updated instead of creating a new asset. If binary is null new Asset is created without original rendition. If an asset already exists at given path, original rendition is not updated.
      Parameters:
      path - The path of the asset to be created.
      binary - The binary for new asset's original
      mimeType - The mime type of the new asset's original binary.
      doSave - Whether the repository changes are saved or not.
      Returns:
      The newly created asset or null if something exists at the given path already or there was an unexpected error
      See Also:
    • createOrUpdateAsset

      @Deprecated Asset createOrUpdateAsset(String path, Binary binary, String mimeType, boolean doSave, boolean createRevision, String revisionLabel, String revisionComment)
      Deprecated.
      In AEM as a Cloud Service, assets should instead take advantage of direct binary access. A discussion of this change as well as an SDK to ease implementation of this new pattern can be found at aem-upload.
      Creates a new Asset at the given path. If an asset already exists at the given path, its original rendition is updated instead of creating a new asset. If binary is null new Asset is created without original rendition. If an asset already exists at given path, original rendition is not updated. If asset already exists and create revision is true, the given revision label and revision comment will be used to create a new revision.
      Parameters:
      path - The path of the asset to be created.
      binary - The binary for new asset's original
      mimeType - The mime type of the new asset's original binary.
      doSave - Whether the repository changes are saved or not.
      createRevision - Whether or not a new revision will be created.
      revisionLabel - The label to associate with the newly created revision.
      revisionComment - The comment to associate with the newly created revision.
      Returns:
      The newly created asset or null if something exists at the given path already or there was an unexpected error
      See Also:
    • createOrReplaceAsset

      @Deprecated Asset createOrReplaceAsset(String path, Binary binary, String mimeType, boolean doSave)
      Deprecated.
      In AEM as a Cloud Service, assets should instead take advantage of direct binary access. A discussion of this change as well as an SDK to ease implementation of this new pattern can be found at aem-upload.
      Creates a new Asset at the given path. If an asset already exists at the given path, it will be removed and re-created. If binary is null new Asset is created without original rendition.
      Parameters:
      path - The path of the asset to be created.
      binary - The binary for new asset's original
      mimeType - The mime type of the new asset's original binary.
      doSave - Whether the repository changes are saved or not.
      Returns:
      The newly created asset or null there was an unexpected error.
      See Also:
    • createRevision

      Revision createRevision(Asset asset, String label, String comment) throws Exception
      Create a new Revision of the asset. The revision will be created as a standard JCR version of the underlying asset node. Owner of the session through which Asset was created is added as
      invalid reference
      DamConstants.PN_VERSION_CREATOR
      of the asset.
      Parameters:
      asset - The asset to version
      label - version label
      comment - version comment
      Returns:
      The created revision
      Throws:
      Exception - Thrown when an error during version creation occurred.
    • createRevision

      Revision createRevision(Asset asset, String label, String comment, User versionCreator) throws Exception
      Create a new Revision of the asset. The revision will be created as a standard JCR version of the underlying asset node. This API allows specifying principal of an AEM User to be added a
      invalid reference
      DamConstants.PN_VERSION_CREATOR
      of the asset being versioned.
      Parameters:
      asset - The asset to version
      label - version label
      comment - version comment
      versionCreator - version creator. If null, this API is equivalent to createRevision(com.day.cq.dam.api.Asset,java.lang.String,java.lang.String)
      Returns:
      The created revision
      Throws:
      Exception - Thrown when an error during version creation occurred.
    • assignAssetID

      String assignAssetID(Asset asset) throws PathNotFoundException, RepositoryException
      Ask Asset ID Provider (associated with Asset Manager) to assign ID (if needed) to an asset and establish its parentage (dam:parentAssetID)
      Parameters:
      asset - The asset to update
      Returns:
      The ID assigned to the asset
      Throws:
      RepositoryException - thrown if an error occurs while accessing the asset
      PathNotFoundException - thrown if no item exists in the path