Interface DocumentBlobManager

    • Method Detail

      • deleteBlob

        boolean deleteBlob​(String repositoryName,
                           String key,
                           boolean dryRun)
                    throws IOException
        Deletes the blob associated to the given key. The method checks that the blob key is not referenced by any document of the given repository.

        The repositories must have the Repository.CAPABILITY_QUERY_BLOB_KEYS capability (i.e. ecm:blobKeys populated).

        Parameters:
        repositoryName - the repository where the blob key comes from
        key - the blob key
        dryRun - if false, effectively deletes the blob, dry run otherwise
        Returns:
        true if the blob has been deleted, false if the blob is referenced and cannot be deleted
        Throws:
        IOException - when reading/deleting the blob from the underlying blob provider
        UnsupportedOperationException - if the repository does not have the Repository.CAPABILITY_QUERY_BLOB_KEYS capability or there is a shared storage detected (by bad blob provider configurations)
        Since:
        2023
      • hasSharedStorage

        boolean hasSharedStorage()
        Compute if there are shared storage.
        Returns:
        true if at least 2 providers points to the same store, false otherwise
        Since:
        2023
      • readBlob

        Blob readBlob​(BlobInfo blobInfo,
                      Document doc,
                      String xpath)
               throws IOException
        Reads a Blob from storage.
        Parameters:
        blobInfo - the blob information
        doc - the document to which this blob belongs
        xpath - the xpath of the blob in the document
        Returns:
        a managed blob
        Throws:
        IOException
        Since:
        11.1
      • writeBlob

        String writeBlob​(Blob blob,
                         Document doc,
                         String xpath)
                  throws IOException
        Writes a Blob to storage and returns its key.

        The passed blob may be null, in which case a null key is returned after checking that deleting this blob is allowed.

        Parameters:
        blob - the blob
        doc - the document to which this blob belongs
        xpath - the xpath of blob in doc
        Returns:
        the blob key
        Throws:
        IOException
        Since:
        9.1
      • getConvertedStream

        InputStream getConvertedStream​(Blob blob,
                                       String mimeType,
                                       DocumentModel doc)
                                throws IOException
        Gets an InputStream for a conversion to the given MIME type.

        Like all InputStream, the result must be closed when done with it to avoid resource leaks.

        Parameters:
        blob - the blob
        mimeType - the MIME type to convert to
        doc - the document that holds the blob
        Returns:
        the stream, or null if no conversion is available for the given MIME type
        Throws:
        IOException
        Since:
        7.2
      • freezeVersion

        void freezeVersion​(Document doc)
        Freezes the blobs' versions on a document version when it is created via a check in.
        Parameters:
        doc - the new document version
        Since:
        7.3
      • notifyChanges

        void notifyChanges​(Document doc,
                           Set<String> xpaths)
        Notifies the blob manager that a set of xpaths have changed on a document.
        Parameters:
        doc - the document
        xpaths - the set of changed xpaths
        Since:
        7.3
      • notifyMakeRecord

        void notifyMakeRecord​(Document doc)
        Notifies the blob manager that the document was made a record.
        Parameters:
        doc - the document
        Since:
        11.1
      • notifyAfterCopy

        void notifyAfterCopy​(Document doc)
        Notifies the blob manager that the document has been copied.
        Parameters:
        doc - the new document, the result of the copy
        Since:
        11.1
      • notifyBeforeRemove

        void notifyBeforeRemove​(Document doc)
        Notifies the blob manager that the document is about to be removed.
        Parameters:
        doc - the document
        Since:
        11.1
      • notifySetRetainUntil

        void notifySetRetainUntil​(Document doc,
                                  Calendar retainUntil)
        Notifies the blob manager that the document's retention date was changed.
        Parameters:
        doc - the document
        Since:
        11.1
      • notifySetLegalHold

        void notifySetLegalHold​(Document doc,
                                boolean hold)
        Notifies the blob manager that the document's legal hold status was changed.
        Parameters:
        doc - the document
        Since:
        11.1
      • garbageCollectBinaries

        @Deprecated
        BinaryManagerStatus garbageCollectBinaries​(boolean delete)
        Deprecated.
        since 2023, this FullGC implementation does not scale on large repositories, use GarbageCollectOrphanBlobsAction instead
        Garbage collect the unused binaries.
        Parameters:
        delete - if false don't actually delete the garbage collected binaries (but still return statistics about them), if true delete them
        Returns:
        a status about the number of garbage collected binaries
        Since:
        7.4
      • isBinariesGarbageCollectionInProgress

        boolean isBinariesGarbageCollectionInProgress()
        Checks if a garbage collection of the binaries in progress.
        Returns:
        true if a garbage collection of the binaries is in progress
        Since:
        7.4
      • isUseRepositoryName

        default boolean isUseRepositoryName()
        Are the blobs from a repository stored in a provider with the same name.
        Returns:
        true if the blobs are dispatched to the provider with the same name than the repository
        Since:
        2023
      • getProviderIds

        default Collection<String> getProviderIds​(String repository)
        Gets the list of the provider ids that are used by the given repository.
        Parameters:
        repository - the repository name
        Returns:
        the list of provider ids where blob can be dispatched for the given repository
        Since:
        2023