dk.netarkivet.common.distribute
Class HTTPSRemoteFile

java.lang.Object
  extended by dk.netarkivet.common.distribute.AbstractRemoteFile
      extended by dk.netarkivet.common.distribute.HTTPRemoteFile
          extended by dk.netarkivet.common.distribute.HTTPSRemoteFile
All Implemented Interfaces:
RemoteFile, java.io.Serializable

public class HTTPSRemoteFile
extends HTTPRemoteFile

A remote file implemented with point-to-point HTTPS communication. Optimised to communicate locally, if file is on the same host. Optimised to transfer 0 byte files inline. Will use one shared certificate for secure communication.

See Also:
Serialized Form

Field Summary
static java.lang.String HTTPSREMOTEFILE_KEY_PASSWORD
          settings.common.remoteFile.certificatePassword:
The setting for the password that the certificate used for HTTPS remotefile (private key) is encrypted with.
static java.lang.String HTTPSREMOTEFILE_KEYSTORE_FILE
          settings.common.remoteFile.certificateKeyStore:
The setting for the keystore file used for HTTPS remotefiles.
static java.lang.String HTTPSREMOTEFILE_KEYSTORE_PASSWORD
          settings.common.remoteFile.certificateKeyStorePassword:
The setting for the password that the keystore used for HTTPS remotefile keystore is encrypted with.
 
Fields inherited from class dk.netarkivet.common.distribute.HTTPRemoteFile
checksum, hostname, HTTPREMOTEFILE_PORT_NUMBER, url
 
Fields inherited from class dk.netarkivet.common.distribute.AbstractRemoteFile
file, fileDeletable, filesize, multipleDownloads, useChecksums
 
Constructor Summary
protected HTTPSRemoteFile(java.io.File file, boolean useChecksums, boolean fileDeletable, boolean multipleDownloads)
          Initialises a remote file implemented by point-to-point HTTPS communication.
 
Method Summary
static RemoteFile getInstance(java.io.File f, java.lang.Boolean useChecksums, java.lang.Boolean fileDeletable, java.lang.Boolean multipleDownloads)
          Initialises a remote file implemented by point-to-point HTTPS communication.
protected  HTTPRemoteFileRegistry getRegistry()
          Get the HTTPS serving registry for remote files.
 
Methods inherited from class dk.netarkivet.common.distribute.HTTPRemoteFile
cleanup, copyTo, getChecksum, getInputStream, getNumberOfRetries, isLocal
 
Methods inherited from class dk.netarkivet.common.distribute.AbstractRemoteFile
appendTo, getName, getSize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HTTPSREMOTEFILE_KEYSTORE_FILE

public static java.lang.String HTTPSREMOTEFILE_KEYSTORE_FILE
settings.common.remoteFile.certificateKeyStore:
The setting for the keystore file used for HTTPS remotefiles. It contains the certificate for HTTPS


HTTPSREMOTEFILE_KEYSTORE_PASSWORD

public static java.lang.String HTTPSREMOTEFILE_KEYSTORE_PASSWORD
settings.common.remoteFile.certificateKeyStorePassword:
The setting for the password that the keystore used for HTTPS remotefile keystore is encrypted with. Refer to the configuration manual for how to build a keystore.


HTTPSREMOTEFILE_KEY_PASSWORD

public static java.lang.String HTTPSREMOTEFILE_KEY_PASSWORD
settings.common.remoteFile.certificatePassword:
The setting for the password that the certificate used for HTTPS remotefile (private key) is encrypted with.

Constructor Detail

HTTPSRemoteFile

protected HTTPSRemoteFile(java.io.File file,
                          boolean useChecksums,
                          boolean fileDeletable,
                          boolean multipleDownloads)
Initialises a remote file implemented by point-to-point HTTPS communication.

Parameters:
file - The file to make a remote file for
useChecksums - Whether communications are checksummed. If true, getChecksum will also return the checksum.
fileDeletable - if true, the file given to this method is deletable, once it is transferred.
multipleDownloads - if true, the file may be transferred more than once. Otherwise, all file handles are attempted to be made invalid after the first transfer, although no guarantees are made.
Throws:
ArgumentNotValid - if file is null, or not a readable file.
IOFailure - if checksums are requested, but i/o errors occur while checksumming.
Method Detail

getInstance

public static RemoteFile getInstance(java.io.File f,
                                     java.lang.Boolean useChecksums,
                                     java.lang.Boolean fileDeletable,
                                     java.lang.Boolean multipleDownloads)
Initialises a remote file implemented by point-to-point HTTPS communication.

Parameters:
f - The file to make a remote file for
useChecksums - Whether communications are checksummed. If true, getChecksum will also return the checksum.
fileDeletable - if true, the file given to this method is deletable, once it is transferred.
multipleDownloads - if true, the file may be transferred more than once. Otherwise, all file handles are attempted to be made invalid after the first transfer, although no guarantees are made.
Throws:
ArgumentNotValid - if file is null, or not a readable file.
IOFailure - if checksums are requested, but i/o errors occur while checksumming.

getRegistry

protected HTTPRemoteFileRegistry getRegistry()
Get the HTTPS serving registry for remote files. Overrides the HTTP registry use by HTTPRemoteFile.

Overrides:
getRegistry in class HTTPRemoteFile
Returns:
registry for remote files.