Nano Hash - криптовалюты, майнинг, программирование

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

Здесь возникла немного странная проблема. Недавно я начал заниматься обслуживанием веб-сайта, который я изначально не создавал. На сайте Drupal есть куча узлов с полем аудиофайла и проигрывателем jQuery, который их воспроизводит. На многих узлах проигрыватель не загружается, и я понял, что это связано с тем, что файл сообщается как 0 байт, когда я редактирую узел. Я не уверен, почему это так. Сначала я подумал, что это может быть связано с правами доступа к файлам, но я не думаю, что это так, поскольку разрешения выглядят нормально для меня. Чтобы исправить это, все, что мне нужно было сделать, это повторно загрузить файл. Проблема в том, что таких файлов сотни, и я хотел бы исправить это, сделав одно обновление, если это возможно.


  • Если вы посмотрите на записи в вашей таблице file_managed, правильно ли указаны размеры файлов? Интересно, может ли таблица быть повреждена. 17.07.2012
  • Нет, в этой таблице они тоже 0 байт. 09.08.2012
  • Еще одна странность заключается в том, что некоторые из этих 0-байтовых файлов будут воспроизводиться, а другие нет. Я не вижу разницы между файлами.. просто некоторые играют, а некоторые нет. Очень странно. 09.08.2012
  • Изменяются ли размеры файлов на «0» при их редактировании или остаются «правильные» файлы? Возможно, что-то пошло не так, когда они впервые загрузили файлы. :( 22.08.2012

Ответы:


1

Вот рабочая версия псевдокода Терри для Drupal 7.

$fids = db_query('SELECT fid FROM {file_managed} WHERE filesize = 0')->fetchCol();

foreach(file_load_multiple($fids) as $file) {
  // Get full path to file.
  $target = drupal_realpath($file->uri);
  // If the file does not exist try the next file.
  if (!file_exists($target)) {
    echo "File $file->uri does not exist." .PHP_EOL;
    continue;
  }
  // Find and store size of file
    $file->filesize = filesize($target);
    // Size of file is
    if ($file->filesize > 0) {
      file_save($file);
    }
    else {
      echo "Size of $file->uri is still zero." . PHP_EOL;
    }
}

Запустите его с помощью drush:

drush php-script fix-file-sizes.php
22.10.2013

2

У нас была такая же проблема: много 0-байтовых файлов в базе данных. То, что мы сделали, выглядело примерно так:

function update_my_filesizes() {
    $fileIDs = db_query('SELECT fid FROM {file_managed) WHERE filesize = 0')->fetchCol();

    foreach(file_load_multiple($fids) as $file) {
        // determine size of file
        $filesize = SIZE_OF_THE_FILE; (pseudocode, we had to use filesize())
        $file->filesize = $filesize;

        if($file->filesize > 0) {        
            file_save($file);
        } else {
            echo "Filesize for file <filename here> is still 0 :(";
        }
    }
}
22.08.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..