Package io.dialob.db.s3
Class AbstractS3Database<F>
- java.lang.Object
-
- io.dialob.db.spi.spring.AbstractDocumentDatabase<F>
-
- io.dialob.db.s3.AbstractS3Database<F>
-
- Direct Known Subclasses:
FormS3Database,QuestionnaireS3Database
public abstract class AbstractS3Database<F> extends AbstractDocumentDatabase<F>
-
-
Constructor Summary
Constructors Constructor Description AbstractS3Database(software.amazon.awssdk.services.s3.S3Client s3Client, Class<F> documentClass, com.fasterxml.jackson.databind.ObjectMapper objectMapper, String bucketName, String prefix)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected StringcreateUuid()booleandelete(String tenantId, String id)booleanexists(String tenantId, String id)protected StringextractObjectName(String key)FfindOne(String tenantId, String id)FfindOne(String tenantId, String id, String rev)protected voidforAllObjects(String tenantId, Consumer<software.amazon.awssdk.services.s3.model.S3Object> fileConsumer)StringgetBucketName()StringgetPrefix()FloadFile(String objectName, InputStream inputStream)protected StringobjectName(String tenantId, String id)Construct S3 object nameFsave(String tenantId, F document)protected abstract StringtenantPrefix(String tenantId)-
Methods inherited from class io.dialob.db.spi.spring.AbstractDocumentDatabase
getDocumentClass, id, rev, updateDocumentId, updateDocumentRev
-
-
-
-
Method Detail
-
getPrefix
public String getPrefix()
-
getBucketName
public String getBucketName()
-
objectName
protected String objectName(String tenantId, String id)
Construct S3 object name- Parameters:
tenantId-id-- Returns:
- object name in storage
-
loadFile
public F loadFile(String objectName, InputStream inputStream)
-
forAllObjects
protected void forAllObjects(String tenantId, @NonNull Consumer<software.amazon.awssdk.services.s3.model.S3Object> fileConsumer)
-
createUuid
protected String createUuid()
-
-