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

Аватар пользователя engenes engenes 17 июня 2019 в 19:09

Настроил приватную дирректорию в папке вне сайта.
При подгрузке изображений к материалу.
Они выводятся на странице через модуль imagecach, но стоит мне указать "показывать оригинальное изображение" и все - путь не найден
я суперадмин, то есть все права у меня есть, возможно урл генерируется как то неправильно.
.net/system/files/20190616_140540.jpg

включил модуль Private files permission, но результат тот же, оригиналы файлов недоступны.

То есть когда я подгружаю фотки в поле, возле самой картинки ставится ссылка на ее оригинал, так вот при переходе по ссылке - страница не найдена

Во вьюсах тот же результат пробовал даже так

<?=file_create_url(private://files/20190616_140540.jpg)?>
урл получается тот же: .net/system/files/20190616_140540.jpg и по нему файл недоступен, спасает только image cache раздувая занимаемое место

Комментарии

Аватар пользователя adano adano 17 июня 2019 в 20:37

Зачем вам "приватность", если вам нужен функционал "паблик-контента"?

P.S. .htaccess смотрите этой директории, если Apache:
"Deny from all"

Аватар пользователя engenes engenes 17 июня 2019 в 20:45

Зачем друпал создает нерабочий системный урл для оригиналов?)
Друпал может обращаться к этой дирректории когда генерирует картинки на основе оригинала, водяные знаки и прочее, но когда он генерирует урл на сам оригинал - страница не найдена.
Да забил уже. Если срипты друпала могут генерировать картинки, значит папка для него доступна. Тут скорее всего косяк в самой системе, а именно в том что она она формирует неправильный урл. Или функция которая разбирает этот урл, не может по ней отдать оригинал файла, хотя непонятно, почему она отдает кешированные картинки, хотя они тоже сохраняются в приватной дирректории

Аватар пользователя engenes engenes 17 июня 2019 в 20:47

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

ну либо создать кастомную функцию которая будет делать то что надо

Аватар пользователя gun_dose gun_dose 18 июня 2019 в 0:12

Стандартное поведение друпала такое: если файлы приватные, то и все их стили тоже будут приватными. Смотреть может только тот, у кого есть право на просмотр приватных файлов, а все остальные получают 403 ответ. Но никак не 404. Если у вас 404, то возможно, неправильно настроен вебсервер.

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

Аватар пользователя engenes engenes 18 июня 2019 в 10:14

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

структура папок такая

название сайта/private/файлы грузятся сюда
название сайта/public_html/файлы сайта

работает так: как только загрузил картинку, в поле появляется миниатюра и ссылка на оригинал, правее кнопка удалить.

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

Случайно, не htaccess drupala который в корне, устанавливается такие ограничения.
Что то ума не приложу куда копать, если htaccess, то в какой именно папке.. и какое должно быть содержимое.

Аватар пользователя Semantics Semantics 18 июня 2019 в 11:04

Есть подозрение, что у вас nginx пытается достучаться до файла напрямую, минуя apache.
Приватная в фс в данном случае работать не будет

Аватар пользователя adano adano 18 июня 2019 в 8:32
1

Лучше в мануалы сначала залезьте, а не в ядро:
https://www.drupal.org/docs/8/core/modules/file/overview#content-accessi...

Если же вам нужны публичные стили для приватных исходников, то там надо патчить ядро и что-то ещё кодить самому.

Не надо так делать, в D7 все прекрасно генерируется и выводится в паблик.

Аватар пользователя engenes engenes 18 июня 2019 в 10:16

Если урлы при этом заработаю то здорово, пока отдается 404, причем не друпаловская а серверная. То есть черный текст на белом фоне

Аватар пользователя gun_dose gun_dose 18 июня 2019 в 14:34

Забыл добавить важное уточнение: я не тупой. В восьмёрке публичные стили к приватным картинкам не генерируются - я проверял, и не только я. И в приведённом мануале на этот счёт ничего не сказано.

Аватар пользователя gun_dose gun_dose 18 июня 2019 в 14:36

Если урлы при этом заработаю то здорово, пока отдается 404, причем не друпаловская а серверная. То есть черный текст на белом фоне

Что там у вас, апач или нжинкс? Скорее всего стоит нжинкс для статики, и нужно смотреть, какой у него задан паттерн локейшена для картинок.

Аватар пользователя engenes engenes 22 июня 2019 в 14:09

Важное дополнение, перенёс приватную папку в папку с сайтом.
То есть теперь, зная путь до папки и название файла его можно открыть.
В настройках указал новый путь.

При загрузки картинки друпал так же генерирует путь до картинки как до приватной файла, и этот путь все так же не работает, странно как то.