Allow to configure a region for s3 backend

Closes: #2386
This commit is contained in:
eikek
2023-11-17 20:53:27 +01:00
parent bc9a483143
commit 81d8b6c9c1
10 changed files with 43 additions and 11 deletions

View File

@ -108,11 +108,22 @@ object BinnyUtils {
JdbcStoreConfig("filechunk", chunkSize, BinnyUtils.TikaContentTypeDetect)
GenericJdbcStore[F](ds, LoggerAdapter(logger), jdbcConfig)
case FileRepositoryConfig.S3(endpoint, accessKey, secretKey, bucket, chunkSize) =>
case FileRepositoryConfig.S3(
endpoint,
accessKey,
secretKey,
bucket,
region,
chunkSize
) =>
val keyMapping = S3KeyMapping.constant(bucket)
val minioCfg = MinioConfig
.default(endpoint, accessKey, secretKey, keyMapping)
.copy(chunkSize = chunkSize, detect = BinnyUtils.TikaContentTypeDetect)
.copy(
chunkSize = chunkSize,
detect = BinnyUtils.TikaContentTypeDetect,
region = region
)
MinioBinaryStore[F](minioCfg, LoggerAdapter(logger))

View File

@ -10,7 +10,7 @@ import fs2.io.file.Path
import docspell.common.FileStoreConfig
sealed trait FileRepositoryConfig {}
sealed trait FileRepositoryConfig
object FileRepositoryConfig {
@ -21,6 +21,7 @@ object FileRepositoryConfig {
accessKey: String,
secretKey: String,
bucketName: String,
region: Option[String],
chunkSize: Int
) extends FileRepositoryConfig
@ -30,8 +31,15 @@ object FileRepositoryConfig {
cfg match {
case FileStoreConfig.DefaultDatabase(_) =>
FileRepositoryConfig.Database(chunkSize)
case FileStoreConfig.S3(_, endpoint, accessKey, secretKey, bucket) =>
FileRepositoryConfig.S3(endpoint, accessKey, secretKey, bucket, chunkSize)
case FileStoreConfig.S3(_, endpoint, accessKey, secretKey, region, bucket) =>
FileRepositoryConfig.S3(
endpoint,
accessKey,
secretKey,
bucket,
region.map(_.trim).filter(_.nonEmpty),
chunkSize
)
case FileStoreConfig.FileSystem(_, directory) =>
FileRepositoryConfig.Directory(directory, chunkSize)
}