| # ============================================= BlobStore Implementation ================================== |
| # Read https://james.apache.org/server/config-blobstore.html for further details |
| |
| # Choose your BlobStore implementation |
| # Mandatory, allowed values are: cassandra, s3 |
| # *WARNING*: JAMES-3591 Cassandra is not made to store large binary content, its use will be suboptimal compared to |
| # alternatives (namely S3 compatible BlobStores backed by for instance S3, MinIO or Ozone) |
| implementation=s3 |
| |
| # ========================================= Deduplication ======================================== |
| # If you choose to enable deduplication, the mails with the same content will be stored only once. |
| # Warning: Once this feature is enabled, there is no turning back as turning it off will lead to the deletion of all |
| # the mails sharing the same content once one is deleted. |
| # Mandatory, Allowed values are: true, false |
| deduplication.enable=false |
| |
| # deduplication.family needs to be incremented every time the deduplication.generation.duration is changed |
| # Positive integer, defaults to 1 |
| # deduplication.gc.generation.family=1 |
| |
| # Duration of generation. |
| # Deduplication only takes place within a singe generation. |
| # Only items two generation old can be garbage collected. (This prevent concurrent insertions issues and |
| # accounts for a clock skew). |
| # deduplication.family needs to be incremented everytime this parameter is changed. |
| # Duration. Default unit: days. Defaults to 30 days. |
| # deduplication.gc.generation.duration=30days |
| |
| # ========================================= Encryption ======================================== |
| # If you choose to enable encryption, the blob content will be encrypted before storing them in the BlobStore. |
| # Warning: Once this feature is enabled, there is no turning back as turning it off will lead to all content being |
| # encrypted. This comes at a performance impact but presents you from leaking data if, for instance the third party |
| # offering you a S3 service is compromised. |
| # Optional, Allowed values are: true, false, defaults to false |
| encryption.aes.enable=false |
| |
| # Mandatory (if AES encryption is enabled) salt and password. Salt needs to be an hexadecimal encoded string |
| #encryption.aes.password=xxx |
| #encryption.aes.salt=73616c7479 |
| # Optional, defaults to PBKDF2WithHmacSHA512 |
| #encryption.aes.private.key.algorithm=PBKDF2WithHmacSHA512 |
| |
| # ========================================= Cassandra BlobStore Cache ====================================== |
| # A cassandra cache can be enabled to reduce latency when reading small blobs frequently |
| # A dedicated keyspace with a replication factor of one is then used |
| # Cache eviction policy is TTL based |
| # Only blobs below a given threshold will be stored. |
| # To be noted that blobs are stored within a single Cassandra row, hence a low threshold should be used. |
| |
| # Enable the cache? Optional and default to false. Must be a boolean. |
| cache.enable=false |
| |
| # Cache eviction policy is TTL based. Optional and defaults to 7 days. Must be a duration. |
| # Valid units: ms, sec, min, hour, day, week, month, year |
| # cache.cassandra.ttl=7days |
| |
| # Maximum size of stored objects expressed in bytes. Must be strictly positive. Defaults to 8192. |
| # Units: bytes, Kib, MiB, GiB, TiB |
| # cache.sizeThresholdInBytes=8 KiB |
| |
| # ============================================== ObjectStorage ============================================ |
| |
| # ========================================= ObjectStorage Buckets ========================================== |
| # bucket names prefix |
| # Optional, default no prefix |
| # objectstorage.bucketPrefix=prod- |
| |
| # Default bucket name |
| # Optional, default is bucketPrefix + `default` |
| # objectstorage.namespace=james |
| |
| # ========================================= ObjectStorage on S3 ============================================= |
| # Mandatory if you choose s3 storage service, S3 authentication endpoint |
| objectstorage.s3.endPoint=http://s3.docker.test:8000/ |
| |
| # Mandatory if you choose s3 storage service, S3 region |
| #objectstorage.s3.region=eu-west-1 |
| objectstorage.s3.region=us-east-1 |
| |
| # Mandatory if you choose aws-s3 storage service, access key id configured in S3 |
| objectstorage.s3.accessKeyId=accessKey1 |
| |
| # Mandatory if you choose s3 storage service, secret key configured in S3 |
| objectstorage.s3.secretKey=secretKey1 |
| |
| # Optional if you choose s3 storage service: The trust store file, secret, and algorithm to use |
| # when connecting to the storage service. If not specified falls back to Java defaults. |
| #objectstorage.s3.truststore.path= |
| #objectstorage.s3.truststore.type=JKS |
| #objectstorage.s3.truststore.secret= |
| #objectstorage.s3.truststore.algorithm=SunX509 |
| |
| |
| # optional: Object read in memory will be rejected if they exceed the size limit exposed here. Size, exemple `100M`. |
| # Supported units: K, M, G, defaults to B if no unit is specified. If unspecified, big object won't be prevented |
| # from being loaded in memory. This settings complements protocol limits. |
| # objectstorage.s3.in.read.limit=50M |
| |
| # ============================================ Blobs Exporting ============================================== |
| # Read https://james.apache.org/server/config-blob-export.html for further details |
| |
| # Choosing blob exporting mechanism, allowed mechanism are: localFile, linshare |
| # LinShare is a file sharing service, will be explained in the below section |
| # Optional, default is localFile |
| blob.export.implementation=localFile |
| |
| # ======================================= Local File Blobs Exporting ======================================== |
| # Optional, directory to store exported blob, directory path follows James file system format |
| # default is file://var/blobExporting |
| blob.export.localFile.directory=file://var/blobExporting |
| |
| # ======================================= LinShare File Blobs Exporting ======================================== |
| # LinShare is a sharing service where you can use james, connects to an existing LinShare server and shares files to |
| # other mail addresses as long as those addresses available in LinShare. For example you can deploy James and LinShare |
| # sharing the same LDAP repository |
| # Mandatory if you choose LinShare, url to connect to LinShare service |
| # blob.export.linshare.url=http://linshare:8080 |
| |
| # ======================================= LinShare Configuration BasicAuthentication =================================== |
| # Authentication is mandatory if you choose LinShare, TechnicalAccount is need to connect to LinShare specific service. |
| # For Example: It will be formalized to 'Authorization: Basic {Credential of UUID/password}' |
| |
| # blob.export.linshare.technical.account.uuid=Technical_Account_UUID |
| # blob.export.linshare.technical.account.password=password |