Class UploadStagingCache

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class UploadStagingCache
    extends java.lang.Object
    implements java.io.Closeable
    Cache for staging async uploads. This serves as a temporary cache for serving local requests till the time the upload has not been synced with the backend.

    The appropriate backend for this cache are wrapped in StagingUploader implementations.

    • Method Detail

      • build

        public static UploadStagingCache build​(java.io.File dir,
                                               java.io.File home,
                                               int uploadThreads,
                                               long size,
                                               org.apache.jackrabbit.oak.plugins.blob.StagingUploader uploader,
                                               @Nullable
                                               @Nullable FileCache cache,
                                               StatisticsProvider statisticsProvider,
                                               @Nullable
                                               @Nullable ListeningExecutorService executor,
                                               @Nullable
                                               @Nullable java.util.concurrent.ScheduledExecutorService scheduledExecutor,
                                               int purgeInterval,
                                               int retryInterval)
      • put

        public Optional<SettableFuture<java.lang.Integer>> put​(java.lang.String id,
                                                               java.io.File input)
        Puts the file into the staging cache if possible. Returns an optional SettableFuture if staged for upload otherwise empty.
        Parameters:
        id - the id of the file to be staged
        input - the file to be staged
        Returns:
        An Optional SettableFuture containing 1 if upload was successful, 0 if an existing id is already pending for upload
      • getIfPresent

        @Nullable
        public @Nullable java.io.File getIfPresent​(java.lang.String key)
        Returns the File if present or null otherwise. Any usage of the returned file should assert for its existence as the file could be purged from the file system once uploaded using the internal scheduled remove mechanism.
        Parameters:
        key - of the file to check
        Returns:
        a File object if found
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable