Предотвращение дублирования файлов в таблице FileTable SQL Server 2014

Я планирую написать приложение ASP.NET MVC, которое будет загружать большие файлы (возможно, размером до 500 МБ) в таблицу файлов SQL Server 2014. Есть ли способ проверить, существует ли файл в FileTable перед загрузкой?

Если файл уже существует в базе данных, я хочу сослаться на уже загруженный файл, а не загружать новый.

Если файл необходимо сначала загрузить в FileTable, прежде чем проверять, существует ли файл уже в FileTable, каков рекомендуемый способ сравнения? (Должен ли я сделать какой-то отдельный CRC, сгенерированный для каждого файла, а затем сравнить с ним?)

Спасибо!


person dev5000    schedule 15.06.2015    source источник


Ответы (1)


Вам нужно будет вычислить хэш файла на стороне клиента перед его загрузкой. У меня нет кусков кода, только концепции:

  • с помощью HTML File API и File Reader для чтения файла
  • с помощью Javascript-реализации SHA256 вычислить хэш файла
  • на вашем сервере вы храните содержимое файла, а также хэш SHA256 каждого файла
  • клиент выполняет запрос AJAX, чтобы увидеть, существует ли уже файл с этим хэшем
  • если он еще не существует: загрузите его!
person Ian Boyd    schedule 15.06.2015