Я написал свой собственный аудиоплеер JavaScript HTML5, который прекрасно работает, когда файлы получены из общедоступных файлов Drupal 7, но не может быть найден при обслуживании из личных файлов Drupal 7. Я вошел в систему, так почему это произошло?
Я потратил много времени на отладку и переписывание своего кода, но только для того, чтобы обнаружить, что именно public / vs private вызывал ошибки, я в конце концов понял это, используя объект поиска, который не возвращал временные шкалы для поиска для private src, но работал хорошо для общественности.
Я искал эту проблему и нахожу много не связанных, но похожих проблем, но ни одной, которые объясняют это поведение.
Личные файлы Drupal, как и большинство аутентифицированных скриптов загрузки PHP, направляют запрос файла через скрипт PHP. Эти сценарии (почти) никогда не поддерживают соответствующие заголовки, такие как Range
заголовок, необходимый для выполнения таких вещей, как возобновление загрузки или запрашивание частей файла, как это делает поиск.
Обычно лучшее решение этих проблем — не использовать PHP-скрипт для вывода файла, так как это добавляет ненужную нагрузку на сервер. Альтернативные решения для аутентифицированных загрузок включают X-Sendfile
(если доступно или его можно установить), временную символическую ссылку со случайным именем в общедоступном каталоге и т. д.
Я решил свою проблему, используя Private Files for Audiofield и jPlayer на Drupal 7, используя Возобновляемый DownloaD модуль и это пластырь