Class S3Backend

    • Constructor Detail

      • S3Backend

        public S3Backend()
    • Method Detail

      • write

        public void write​(DataIdentifier identifier,
                          java.io.File file)
                   throws DataStoreException
        It uploads file to Amazon S3. If file size is greater than 5MB, this method uses parallel concurrent connections to upload.
        Parameters:
        identifier - key of the file
        file - file that would be stored in backend.
        Throws:
        DataStoreException - for any error.
      • exists

        public boolean exists​(DataIdentifier identifier)
                       throws DataStoreException
        Check if record identified by identifier exists in Amazon S3.
        Parameters:
        identifier - identifier to be checked.
        Returns:
        true if records exists else false.
        Throws:
        DataStoreException
      • read

        public java.io.InputStream read​(DataIdentifier identifier)
                                 throws DataStoreException
        Description copied from interface: SharedBackend
        Return inputstream of record identified by identifier.
        Parameters:
        identifier - identifier of record.
        Returns:
        inputstream of the record.
        Throws:
        DataStoreException - if record not found or any error.
      • close

        public void close()
        Description copied from interface: SharedBackend
        Close backend and release resources like database connection if any.
      • getBucket

        public java.lang.String getBucket()
      • setBucket

        public void setBucket​(java.lang.String bucket)
      • setProperties

        public void setProperties​(java.util.Properties properties)
        Properties used to configure the backend. If provided explicitly before init is invoked then these take precedence
        Parameters:
        properties - to configure S3Backend
      • addMetadataRecord

        public void addMetadataRecord​(java.io.InputStream input,
                                      java.lang.String name)
                               throws DataStoreException
        Description copied from interface: SharedBackend
        Adds a metadata record with the specified name
        Parameters:
        input - the record input stream
        name - the name
        Throws:
        DataStoreException
      • addMetadataRecord

        public void addMetadataRecord​(java.io.File input,
                                      java.lang.String name)
                               throws DataStoreException
        Description copied from interface: SharedBackend
        Adds a metadata record with the specified name
        Parameters:
        input - the record file
        name - the name
        Throws:
        DataStoreException
      • getMetadataRecord

        public DataRecord getMetadataRecord​(java.lang.String name)
        Description copied from interface: SharedBackend
        Gets the metadata of the specified name.
        Parameters:
        name - the name of the record
        Returns:
        the metadata DataRecord
      • getAllMetadataRecords

        public java.util.List<DataRecord> getAllMetadataRecords​(java.lang.String prefix)
        Description copied from interface: SharedBackend
        Gets all the metadata with a specified prefix.
        Parameters:
        prefix - the prefix of the records to retrieve
        Returns:
        list of all the metadata DataRecords
      • deleteMetadataRecord

        public boolean deleteMetadataRecord​(java.lang.String name)
        Description copied from interface: SharedBackend
        Deletes the metadata record with the specified name
        Parameters:
        name - the name of the record
        Returns:
        boolean to indicate success of deletion
      • deleteAllMetadataRecords

        public void deleteAllMetadataRecords​(java.lang.String prefix)
        Description copied from interface: SharedBackend
        Deletes all the metadata records with the specified prefix.
        Parameters:
        prefix - the prefix of the record
      • getAllRecords

        public java.util.Iterator<DataRecord> getAllRecords()
        Description copied from interface: SharedBackend
        Returns a list of all DataRecords
        Returns:
        iterator over DataRecords
      • getOrCreateReferenceKey

        public byte[] getOrCreateReferenceKey()
                                       throws DataStoreException
        Description copied from class: AbstractSharedBackend
        Returns the reference key of this backend. If one does not already exist, it is automatically created in an implementation-specific way. The default implementation simply creates a temporary random key that's valid only until the data store gets restarted. Subclasses can override and/or decorate this method to support a more persistent reference key.

        This method is called only once during the lifetime of a backend instance and the return value is cached in memory, so it's no problem if the implementation is slow.

        Overrides:
        getOrCreateReferenceKey in class AbstractSharedBackend
        Returns:
        reference key
        Throws:
        DataStoreException - if the key is not available
      • metadataRecordExists

        public boolean metadataRecordExists​(java.lang.String name)
        Description copied from interface: SharedBackend
        Checks if the metadata record with the specified name exists.
        Parameters:
        name - the name of the record
        Returns:
        whether record exists