У меня также был похожий вариант использования.Мы сделали это с помощью метода архивирования файлов (require less storage
, fast for small documents
).Когда Клиент загружает документы, мы создаем новый Zip-файл и называем его уникальным образом.( без изменения имен оригинальных документов ).Например, вы можете дать уникальное имя с clientID + uploadTime
.
Теперь хранить можно несколькими способами (для быстрого поиска документов)
- Создать только один каталог (не идеальный способ)
- Создать каталоги согласно
ClientId
- Создание каталогов в соответствии с
UploadTime (DayWise, MonthWise)
Если все документы успешно загружены, то вы можете сохранить информацию одокументы в таблице.Обратите внимание, что сохранение пути документа может создать проблему, если путь изменится в будущем, поэтому сохраняйте только имя документа.Так как здесь вам нужно хранить детали каждого документа, вы можете создать две таблицы.One table with id(pk), client Id, zip filename another with id(fk), document name, size etc.
вы можете настроить максимальный размер файла, максимальный размер запроса, как показано ниже в application properties
MULTIPART (MultipartProperties)
spring.servlet.multipart.enabled=true # Whether to enable support of multipart uploads.
spring.servlet.multipart.file-size-threshold=0B # Threshold after which files are written to disk.
spring.servlet.multipart.location= # Intermediate location of uploaded files.
spring.servlet.multipart.max-file-size=1MB # Max file size.
spring.servlet.multipart.max-request-size=10MB # Max request size.
spring.servlet.multipart.resolve-lazily=false # Whether to resolve the multipart request lazily at the time of file or parameter access.