Алгоритм для определения идентификационных данных файла (Оптимизация)

Вы просто скрываете этот ряд, щелкая по нему. некоторые такие ...

 $(".deleteProduct").click(function(){
    $(this).closest("tr").hide();
    var id = $(this).data("id");
    var token = $(this).data("token");
    $.ajax(
        {
            url: "comment/delete/"+id,
            type: 'DELETE',
            dataType: "JSON",
            data: {
                "id": id,
                "_method": 'DELETE',
                "_token": token,
            },
            success: function ()
            {
                console.log("it Work");
            }
        });

    console.log("It failed");
});

Надеюсь, что это поможет. Вы можете использовать это после успешного ответа

6
задан Community 23 May 2017 в 12:25
поделиться

3 ответа

  • Всегда включайте 1-й и последний блок файла в хеш.

Это потому, что они, скорее всего, будут отличаться от файла к файлу. Если вы рассматриваете BMP, у него может быть довольно стандартный заголовок (например, изображение 800x600, 24 бита, нулевой остаток), поэтому вы можете захотеть немного перескочить заголовок, чтобы получить дифференцирующие данные. Проблема заключается в том, что заголовки сильно различаются по размеру.

Последний блок предназначен для файловых форматов, которые добавляют данные к оригиналу.

  • Чтение в блоках размера, которые являются исходными для используемой вами файловой системы, или, по крайней мере, делятся на 512.
  • ] Всегда считывайте блоки со смещением, которое делится на размер блока.
  • Если вы получаете то же самое для файла того же размера, сделайте его глубокое сканирование (хэшируйте все данные) и запомните путь к файлу, чтобы не сканировать его снова.

Даже тогда если только ты не'

1
ответ дан 17 December 2019 в 20:34
поделиться
  1. Не ищите назад и не открывайте файл с помощью FILE_FLAG_SEQUENTIAL_SCAN (в Windows).
    (Выберите X случайных чисел, затем отсортируйте их).
  2. Чтобы искать далеко, обычно есть некоторые данные в кэше с опережающим чтением.
  3. Если у вас большие файлы, отформатируйте раздел так, чтобы он имел большой размер сектора.
  4. Вы возвращаете Guid для идентификатора, для алгоритмов хеширования Must нужно более 128 бит.
0
ответ дан 17 December 2019 в 20:34
поделиться

Я бы избежал такого решения. Я практикую, может быть, почти невозможно, чтобы два медиа-файла имели одинаковый размер и одинаковые данные в основных положениях для сжатых форматов. Но если вам приходится иметь дело с несжатыми изображениями или волновыми файлами, шансы на то, что небольшие локальные изменения не обнаруживаются, растут.

Так что я думаю, что вы должны действительно хешировать весь файл. Хотя это кажется дорогим, это может быть не так, если у вас есть доступ ко всем файлам - например, если вы создаете файловый сервер или что-то в этом роде. Вы можете постепенно наращивать хэш.

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

Некоторые соображения по поводу производительности. Для небольших файлов шансы одинаковой длины файла довольно высоки - не так много разных длин файлов. Но хэширование небольших файлов обходится не дорого.

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

Наконец, вы обязательно обнаружите разные файлы (за исключением коллизий хешей). ) потому что при необходимости вы хэшируете весь файл.

ОБНОВЛЕНИЕ

Для фильмов я бы посчитал длину файла практически уникальной, но файлы, перекодированные для размещения на данном носителе, вероятно, лишают эту идею смысла - (S) фильмы VCD будут иметь небольшой диапазон длин файлов примерно на CD-ROM.

Но для файлов фильмов в целом, я бы просто хеш одного блока (может быть 512 байт) от середины файла. Два разных фильма с одинаковым изображением и звуком в одной позиции? Практически невозможно, кроме того, что вы манипулируете файлами, чтобы не пройти этот тест. Но вы можете легко сгенерировать файлы, чтобы потерпеть неудачу во всех стратегиях детерминированной выборки - так что это не должно иметь большого значения.

Два разных фильма с одинаковым изображением и звуком в одной позиции? Практически невозможно, кроме того, что вы манипулируете файлами, чтобы не пройти этот тест. Но вы можете легко сгенерировать файлы, чтобы потерпеть неудачу во всех стратегиях детерминированной выборки - так что это не должно иметь большого значения.

Два разных фильма с одинаковым изображением и звуком в одной позиции? Практически невозможно, кроме того, что вы манипулируете файлами, чтобы не пройти этот тест. Но вы можете легко сгенерировать файлы, чтобы потерпеть неудачу во всех стратегиях детерминированной выборки - так что это не должно иметь большого значения.

1
ответ дан 17 December 2019 в 20:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: