BlobStore Configuration

BlobStore is the dedicated component to store blobs, non-indexable content. James uses the BlobStore for storing blobs which are usually mail contents, attachments, deleted mails... You can choose the underlying implementation of BlobStore to fit with your James setup. It could be the implementation on top of Cassandra or file storage service like Openstack Swift, AWS S3. This configuration is only applicable with Guice products.

Consult blob.properties in GIT to get some examples and hints.

Blobs storing configuration

implementation
cassandra: use cassandra based BlobStore
objectstorage: use Swift/AWS S3 based BlobStore
union: Using both objectstorage as the current BlobStore and cassandra as the legacy BlobStore

ObjectStorage BlobStore Codec Configuration

objectstorage.payload.codec
DEFAULT: no encryption
AES-256: AES-256 encryption

ObjectStorage AES256 Encryption

objectstorage.aes256.hexsalt
salt string required by AES 256 encryption
objectstorage.aes256.password
password string required by AES 256 encryption

ObjectStorage BlobStore Buckets Configuration

objectstorage.bucketPrefix
Bucket is an concept in James and similar to Containers in Swift or Buckets in AWS S3. BucketPrefix is the prefix of bucket names in James BlobStore
objectstorage.namespace
BlobStore default bucket name. Most of blobs storing in BlobStore are inside the default bucket. Unless a special case like storing blobs of deleted messages.

ObjectStorage Underlying Service Configuration

objectstorage.provider
swift: Openstack Swift
aws-s3: Amazon AWS S3

ObjectStorage Swift Configuration

objectstorage.swift.region
Specify the geography region which the BlobStore will connect to a in Swift ObjectStorage
objectstorage.swift.authapi
Specify the authentication mechanism of Swift. tmpauth:Swift Temp Auth keystone2:Swift Keystone Auth keystone3:Swift Keystone Auth
objectstorage.swift.endpoint
authentication endpoint
objectstorage.swift.credentials
authentication credential

ObjectStorage Swift temp Authentication Configuration

objectstorage.swift.tempauth.username
Username of Swift
objectstorage.swift.tempauth.tenantname
Tenantname of Swift
objectstorage.swift.tempauth.passheadername
Specify http header name for carrying credential information
objectstorage.swift.tempauth.userheadername
Specify http header name for carrying identity information

ObjectStorage Swift keystone2 Authentication Configuration

objectstorage.swift.keystone2.username
Similar to tempAuth
objectstorage.swift.keystone2.tenantname
Similar to tempAuth

ObjectStorage Swift keystone3 Authentication Configuration

objectstorage.swift.keystone3.user.name
Specifying username in identity information
objectstorage.swift.keystone3.user.domain
Specifying user domain in identity information
objectstorage.swift.keystone3.scope.domainid
Specifying scope domain in identity information
objectstorage.swift.keystone3.scope.project.name
Specifying project name in project information. Equivalent to jclouds.keystone.scope jclouds keystore configuration
objectstorage.swift.keystone3.scope.project.domainname
Specifying project domain name in project information. Equivalent to jclouds.keystone.project-domain-name jclouds keystore configuration
objectstorage.swift.keystone3.scope.project.domainid
Specifying project domain id in project information. Equivalent to jclouds.keystone.project-domain-id jclouds keystore configuration

ObjectStorage AWS S3 Configuration

objectstorage.s3.endPoint
S3 service endpoint
objectstorage.s3.accessKeyId
S3 access key id
objectstorage.s3.secretKey
S3 access key secret