Ну так бы сразу и сказал. Тебе нужно расширить папку/файл по ссылке. Переходя по ней ты увидишь окно с содержимым и кнопку скачать. Т.е. требуется действие от пользователя, НО если добавить в конце пути (если не изменяет память)
Я тоже как-то методом тыка нашел эту ссылку у себя и был рад, что она работает в Гугл таблицах (об этом я писал в первом посте).
Выглядит она вот так: https://domain.com/s/b37j9Lxi9LkR4ft/download?path=%2F&files=000001.jpg
Только проблема в том, что wget ее не может скачать. Он качает файлик с названием “download?path” … да и бог бы с названием, так и размер у этого файлика явно не картинки. И сайт соответственно тоже не может его выкачать. Я поэтому эту тему и поднял.
Запускал монтирование от root. Был нюанс, что не хотел читать пароли из файла ~/.davfs2/secrets, но из другого файла /etc/davfs2/secrets все прочитал.
Потом несколько раз примонтировалось и все было видно, через несколько подключений туда сюда начал писать ошибку типо “сервер временно недоступен” именно сервер, а не ресурс, но с серваком все было в порядке. Попытался ребутнут сервак и сервак вобще помер, я так подозреваю не смог автоматом примонтировать точку WebDav, хотя очень странно, что сервак после ребута меня пытался принудительно загнать с режим обслуживания и требовал пароль рута.
Были еще нуансы в том, что как-то долго все показывается через WebDav, помню и на винде не сильно это радовало, и куча народа на это жаловались в инете.
В понедельник буду пробовать просто установить клиента nextcloud и включить синхронизацию, пусть просто выкачивает на себя, но надо будет поиграться с путями, чтобы картинки на сайте не дублировались при импорте товаров.
Все равно идеальным вариантом остается конечно просто вариант расшарить папку 1 раз и потом получать из нее файлы по прямым ссылкам и приэтом эти ссылки были предсказуемыми и менялось только имя файла.
Если у кого-то еще есть идеи, с радостью потестирую.
downloads это не проблема, проблема в том, что я немогу автоматически генерировать эти ссылки в гугл таблицах, потомучто линк не привязан ни к какой логике, просто случайная генирация символов, а я хотел привязать генерацию к артикулу товара и просто в папку класть картинки уже с нужным именем.
По поводу наконце /download может у тебя другая версия Nextcloud? Я в первом топе свою писал.
Еще у тебя в линке есть index.php, я делал красивые линки себе … можешь погуглить pretty links nextcloud.
Вот еще такая идея:
Зачем тебе линки постоянно генерировать? Создай Х файлов, скажем 10. Расшарь и получи 10 линков на них. Теперь ты можешь менять содержимое каждого из 10 файлов, а линк останется прежним. Добавляй /download в конце и будет тебе счастье.
У меня сейчас NC 14.
Если ты вообще по хардкоркору хочешь, то нужно создать хук (или парсер бота) в mysql чтоб выплевывал эти линки для тебя, или ты можешь редактировать их в БД и получать любой результат.
Вообще не понятно что именно ты пытаешься решить, если твой NC часть бэкэнда то первое решение с паролями должно работать на ура. Если твой NC часть фронтэнда, то генерь линки заранее, а содержимое файлов меняй. Далее без игр с БД не обойтись.
ОБНОВЕЛНИЕ:
Я нашел что ты хочешь: расшариваешь папку по ссылке и потом все файлы в ней доступны по прямой ссылке, например для OST Dimon:
Все верно именно это я и хочу. Третий раз говорю, что данную ссылку понимает только Гугл Таблица. Ни в wget, ни модуль импорта в интернет-магазин на Opencart не могут загрузить картинку по этому линку, вот я и ищу альтернативу. Качается файлик большого размера и это не картинка, а что-то другое.
Попробуй выполнить у себя команду, может в 14 версии, что-то исправили: wget https://YARSERVER/index.php/s/X6t2BKe6zcAiegs/download?path=/Audio&files=OST_Bumer_-_Dimon.mp3
ссылки не отличаются, просто у тебя символы между path и files закодированы по другому.
Как ты обратил внимание на скриншоте имя файла не совсем приятное, но это проблема wget. Ссылку брал просто из шары (т.е. открыл расшаренную папку по ссылке в приватном окне):
Да, действительно wget качает, но когда я обрамляю весь путь в кавычки и гугл таблицы и модуль импорта вообще перестает воспринимать путь как ссылку на картинку. Я вот подумал есть же спец символы типо слеша или коды символов, которые могли позволить обрамлять не всю ссылку в кавычки, а только эти спецсимволы ?=&%
Т. е. вместо ссылки https://domain.com/s/b37j9Lxi9LkR4ft/download?path=%2F&files=000001.jpg
или ссылки с кавычками:
“https://domain.com/s/b37j9Lxi9LkR4ft/download?path=%2F&files=000001.jpg” получить ссылку без спецсимволов, а точнее их точечным выделением, чтобы начало и конец ссылки не изменилось, т. е. остался виден протокол https и конец . jpg: https://domain.com/s/b37j9Lxi9LkR4ft/download\?path\=\%2F\&\;files=000001.jpg
Только я не знаю как этого добиться. Может ты подсказать сможешь?
Я не про гугл таблицы, я говорил про php, т. к. модуль, которым я пользуюсь написан на php.
Спасибо за помощь, завтра буду играться, чтоже не нравится php модулю и как ему скормить этот путь чтобы он не скачивал целый архив папки аналогично wget без использования ковычек.
https://domain.com/s/b37j9Lxi9LkR4ft/download скачает полный архив папки. Только без дополнительных параметров wget оставит имя файла download, так что переименуй его в files.zip и все, или открывай как архив напрямую.
Вот тут написано причина, почему NextCloud не позволит внешним сайтам ссылаться на свои файлы:
Исключение - для изображений, на которые (вернее на preview которых) ссылку ставить можно.
Я обходил это просто созданием ещё одного vhost на Apache, в котором просто указывал на data папку NextCloud’a.
Но тут надо понимать что делаешь, потому что в зависимости от ситуации можно словить security issues.
Ну как мы выше выяснили ссылаться и качать картинки даже без preview ссылки можно, расшарив просто папку, хотя это я знал еще до того как открыл тему. Вопрос только как правильно ее скормить php модулю, чтобы не использовать кавычки в начале и конце ссылки.
wget без проблем качает ссылку, если ее запихнуть в кавычки.
Вчера попросил друга посмотреть как ее скормить php:
короче у меня все окк
через функцию file_get_contents(url) все получает правильно
ничего не экранировал
Теперь попросил его посмотреть сам модуль импорта, подозреваю, что там косяк.
Вот не надо, NC позволяет вставлять картинки и все остальное на форумах. Играть с Apache и прямой ссылкой однозначно плохая идея.
Вот пример моего старого сообщения на форуме с ссылкой на картинку, которые прекрасно отображались:
У меня появился вопрос ?
А почему после того как картинки залиты на Nextcloud не синхронизировать папку с ними на папку на другом серверы?
Виды синхронизации разные.
Об этом я уже писал 5 дней назад. Но пока руки не долши. И вариант далеко не универсальный, это хорошо что у меня личный сервак, а допустим мне нужно будет перехать на платный хостинг … не говоря уже о том, что привносит новые проблемы.
Друзья, большое спасибо всем за помощь, особенно gas85.
РЕШЕНО
Спустя несколько недель мне удалось пообщаться с разработчиком модуля импорта и он смог оперативно решить проблему.
Вот его ответ:
это было потому, что модуль не обнаруживал имя файла, отправленное next cloud, поэтому он давал каждому файлу одинаковое имя и перезапись.
Действительно наблюдались именно такие симптомы, т. е. бралась одна картинка рандомно и назначалась на все товары, на тот момент я не придал этому значения т. к. в превью картинок перед импортом было просто пустое поле с отсутствующими картинками и далеко не всем назначалась даже эта единственная картинка (возможно просто картинки отсутствовали в реальности на некоторых товарах просто).
Подведу итог:
Расшарить одну папку для публичного доступа, потом положить туда кучу картинок с заранее известными именами и после этого скачать их по прямой ссылке реально и все работает**!!! ЭТО БЫЛ ГЛЮК МОДУЛЯ ИНТЕРНЕТ-МАГАЗИНА!!!**