temporal result

This commit is contained in:
2022-01-17 14:45:12 +06:00
parent ef372ab520
commit a651d8560e
15 changed files with 137 additions and 51 deletions

View File

@@ -3,6 +3,8 @@ package dev.inmo.postssystem.features.files.common
import dev.inmo.micro_utils.common.*
import dev.inmo.micro_utils.mime_types.MimeType
import dev.inmo.micro_utils.serialization.typed_serializer.TypedSerializer
import dev.inmo.postssystem.features.common.common.SimpleInputProvider
import dev.inmo.postssystem.features.common.common.SimpleInputProviderSerializer
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializable
@@ -28,8 +30,8 @@ data class MetaFileInfo(override val name: FileName, override val mimeType: Mime
data class FullFileInfo(
override val name: FileName,
override val mimeType: MimeType,
@Serializable(ByteArrayAllocatorSerializer::class)
val byteArrayAllocator: ByteArrayAllocator
@Serializable(SimpleInputProviderSerializer::class)
val inputProvider: SimpleInputProvider
) : FileInfo
fun FullFileInfo.toMetaFileInfo() = MetaFileInfo(name, mimeType)

View File

@@ -3,6 +3,7 @@ package dev.inmo.postssystem.features.files.common
import dev.inmo.postssystem.features.files.common.storage.ReadFilesStorage
import dev.inmo.micro_utils.pagination.*
import dev.inmo.micro_utils.repos.ReadKeyValueRepo
import io.ktor.utils.io.streams.asInput
import java.io.File
class DiskReadFilesStorage(
@@ -38,7 +39,7 @@ class DiskReadFilesStorage(
it.fileInfo.name,
it.fileInfo.mimeType
) {
id.file.readBytes()
id.file.inputStream().asInput()
}
)
}

View File

@@ -36,7 +36,7 @@ class WriteDistFilesStorage(
file = newId.file
} while (file.exists())
metasKeyValueRepo.set(newId, it.toMetaFileInfo())
file.writeBytes(it.byteArrayAllocator())
file.writeBytes(it.inputProvider())
FullFileInfoStorageWrapper(newId, it)
}
@@ -52,7 +52,7 @@ class WriteDistFilesStorage(
override suspend fun update(
id: FileId,
value: FullFileInfo
): FullFileInfoStorageWrapper? = id.file.takeIf { it.exists() } ?.writeBytes(value.byteArrayAllocator()) ?.let {
): FullFileInfoStorageWrapper? = id.file.takeIf { it.exists() } ?.writeBytes(value.inputProvider()) ?.let {
val result = FullFileInfoStorageWrapper(id, value.copy())
metasKeyValueRepo.set(id, value.toMetaFileInfo())