Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: По чему не работает PHP код получения страницы по HTTP?

Лучший ответ:
Почему бы не использовать curl или уже готовые библиотеки, вроде этой: simplehtmldom.sourceforge.net ? Или не прописать условия, мол, если file_get_contents не сработал, то делать с сокетами? Дело в том, что на хостинге может не проходить Ваш user agent или могут резаться соединения по иным фильтрам.
А может fsockopen выдает ошибку? У Вас же подавление ошибок через собаку, если ее убрать, ворнинги какие-то посыпятся же, верно?
Что в $errno и $errstr?

Худший ответ:
А где Вы пишете $request в сокет?
Вопрос: Как закрыть или призвать к ответственности сайт, который дублирует контент?

Лучший ответ:
звоните по номерам телефонов в саму компанию и выясняйте.

Худший ответ:
Был у меня похожий случай. Случайно в статистике увидел домен, который копирует полностью копирует мой сайт, написал регистратору и хостеру, после чего владельцы стали копировать другой сайт.
Вопрос: Нейронная сеть FANN — вопрос по коду, поясните почему такой результат происходит?

Лучший ответ:
Не знаю нужен ли еще ответ или нет, код немного не верен
Вы на выходе ставите 1 нейрон, он Вам и ответ правильный дает
если на выход сделать 10 нейронов
$ann = fann_create_standard_array(3, array(2, 3, 10));
а в обучении сделать вот так:
for($i = 0; $i < 500000; $i++)
{
    if ($i % 100000 == 0) print "$i\n";
    fann_train($ann, array(25, 13), array(0, 0, 0, 0, 0, 0, 1, 0, 0, 0));
}
то на выходе получаете
print_r(fann_run($ann, array(25, 13)));
верный ответ в индексе 6 (цифра 7)

Худший ответ:
Восстание машин началось.
А если серьезно - нейронные сети основаны на вероятностях. Передавая данные один раз - шанс получить их обратно крайне мал.
Попробуйте прогнать fann_train в цикле, и убедитесь, что в таком случае результаты будут более верными:for($i=0;$i<500000;$i++) {
  fann_train(...);
}
А вообще, тут немного замешана философия. Почему 7 не может быть единицей?
Вопрос: Что такое LF, CLRF и как с этим бороться?

Лучший ответ:
Я когда первый раз брался за это дело, тоже без мата не получалось. Времени кучу убил на все разбирательства.
Это директивы перевода строк. Чтобы не было косяков между винды/юниксы/маки и прочих в переносах строк.
Я себе в конфиге сделал autocrlf = false и больше меня не мучил этот вопрос.

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

Лучший ответ:
Я больше доверяю open-source программе  Prey 
Про него даже есть статья на Хабре.

Худший ответ:
Avast mobile security под андроид- мощная штука. Управление командами по смс, умеет маскироваться под любое приложение.
Вопрос: Как разграничить права пользователей на linux-сервере?

Лучший ответ:
Как-то так: mkuser () { 
    mkdir -p ${user_homedir}
    useradd -d ${user_homedir} -s /bin/bash ${user}
    usermod -a -G secure ${user}
    echo "User ${user} created"
    user_set_login_type
    random_password_for_user
    chown root:root /home/${user}/
    chmod 755 /home/${user}/
    chown ${user}:secure ${user_homedir}
    chmod 705 ${user_homedir}
    mkdir -p ${user_homedir}/www
    mkdir -p ${user_homedir}/mod-tmp
    chown -R ${user}:${user} ${user_homedir}/*
    chown -R ${user}:www-data ${user_homedir}/mod-tmp/
    chmod -R 770 ${user_homedir}/mod-tmp/
    chmod -R 755 ${user_homedir}/*
}
Это запретит пользователям читать файлы из других хомяков. 
Сверху можно приклеить vsftpd с чрутом - https://debian.pro/72
https://debian.pro/24 - chroot в хомяк для sftp
Если же вам действительно нужно пускать пользователей в консоль и ограничить их только хомяком, то долго и вдумчиво читайте это - https://debian.pro/1237

Худший ответ:
Права доступа выставить не пробовали?Модель прав доступа
Вопрос: Как скрыть элемент?

Лучший ответ:
это прочитай или вот это, поддержка с css3, если хочешь большую поддержку ищи js скрипты или используй сразу js.

Худший ответ:
через jq посмотрите ширину экрана $(document).width()
if ($(document).width()<300)
{
   $('.clickdesk_bubble').hide();
}
или можно без использования jq, на чистом js
Вопрос: Онлайн редактор html/css/js кода (но не простой, а…)?

Лучший ответ:
http://cssdeck.com
Плюсы:
 — ZenCoding
 — Collaborating/ Teaching (присоединений к просмотру изменений/правке кода онлайн)
 — Позволяет присоеденяться к изменению кода незалогиненным пользователям
 — Очень юзабельно при проведении собеседований
Минусы:
 — Изредка «подвисает»- требуется перезагрузка странички.

Например, откройте несколько окон со следующей ссылкой и измените что-нибудь в коде:
http://cssdeck.com/labs/collab/vvk80hyg/0

Худший ответ:
Вот еще наткнулся на http://plnkr.co. 

Тоже имеет collaborative mode. Позволяет создавать отдельные файлы html, css, js. И сохранять отредактированный набор в виде «снипета».
Чуть более «грузный» чем cssdeck. Но может кому-то будет полезен.
Zencoding в нем работает хуже (по крайней мере у меня сложные конструкции не разворачивал).
Вопрос: Личный кабинет клиента Битрикс?

Лучший ответ:
Ну, тут путей может быть много.
Можно писать собственные компоненты в связке с собственными таблицами.
Можно запилить на базе модуля интернет-магазина (кредит сделать товаром, подача заявки - оформление заказа, настроить статусы заказа и проч)
Можно на базе модуля "Техподдержка", суть процесса примерно схожи.
Лично я бы написал собственный модуль и паблик для него. Но для этого нужно немного шарить в БУСе.

Худший ответ:
туд
dev.1c-bitrix.ru/community/forums
Вопрос: Вызов python3 скрипта из java?

Лучший ответ:
А Runtime.exec() не подходит?

Худший ответ:
Jython и JEPP не поддерживают Python 3, поэтому exec() — оптимальный вариант. 
В файле уже прописан shebang (#!/usr/bin/env python3), так что его можно запустить просто как скрипт.
Вопрос: Лучший дистрибутив Linux для MacBookPro?

Лучший ответ:
Нет никаких проблем у Ubuntu с маками. У меня MBA 2013, и wifi, и thunderbolt прекрасно работают.
У Убунты есть специальные сборки для Маков, попробуйте их

Худший ответ:
Ubuntu с Unity (какой-нибудь свежей версии).
Вопрос: Как уменьшить пинг из Таиланда (Пхукет) до сервера в России для комфортной работы по ssh? VPN, etc?

Лучший ответ:
MOSH поставьте.

Худший ответ:
Когда то была проблема с пингом в играх, то находила скрипт на подобие этого. Который уменьшал пинг не только в играх, а и скорость соединения с сервером была быстрее.
Вопрос: Как вы документируете свои rest api?

Лучший ответ:
К примеру en.wikipedia.org/wiki/Web_Application_Description_Language. А для себя (два разработчика, клиент и сервер) google docs выручает, чтобы не заморачиваться.

Худший ответ:
У меня все REST методы описываются через аннотации (Symfony 2) ну и потом по ним генерится документация. Добавить туда примеры с curl проблемы не составляет.
Вопрос: Почему на сервер не приходят куки?

Лучший ответ:
> http://127.0.0.1:80
> localhost:8080
что-то непонятно связи

Худший ответ:
Может я не прав, но вы ставите куку на домен 127.0.0.1:80, а API у вас судя по комментам на 127.0.0.1:8080.
Незнаю, влияет ли порт на "равность" адресов, но... Думаю вам стоит проверить
Вопрос: Какой подход применить для обновления времени на сайте?

Лучший ответ:
Может получать время на машине клиента, строить для него таблицу корректировок для всех часовых поясов и отображать, делая корректировки?

Худший ответ:
Комбинируйте варианты 1 и 2.
Обновление по ajax раз в минуту, а остальное время просто добавляйте по 1 секунде.
Время будет точным и нагрузка на сервер снизится соответственно.
Вопрос: Как включить дискретную видеокарту после ремонта?

Лучший ответ:
Зайти в BIOS и сбросить его в дефолтные настройки.
Если знания позволяют, то в разделе PCI будет раздел Integrated Graphics (IGP), там можно активировать обратно

Худший ответ:
Зайти в BIOS и сбросить его в дефолтные настройки.
Если знания позволяют, то в разделе PCI будет раздел Integrated Graphics (IGP), там можно активировать обратно
Вопрос: Поменять местами 2 строки в таблице mysql

Лучший ответ:
И никто не спросил — а ЗАЧЕМ это нужно? sys-id на то и auto-increment, что выдается sequence-генератором раз и навсегда. Зачем вы хотите это сделать?

Худший ответ:
если ld у вас не первичный ключ, но и одинаковых значений не содержит, то должно по идее сработать вот так (пусть нужно поменять местами номера 0 и 1)
UPDATE table SET ld=IF(ld=0, 1, IF(ld=1, 0, ld));
Вопрос: Как оптимизировать вложенные запросы?

Лучший ответ:
Внешне - нормальный запрос без перегибов. Проблема в чем? Долго выполняется? 
Без размера таблиц сложно что-то порекомендовать.
Вы джойните Filteredcontact ради 1 поля. Без него никак?
UPD: К тому же это же отчет, а не запрос для отрисовки интерфейса пользователю. Он ведь не по 40 минут строится?

Худший ответ:
А вы пробовали временные таблицы? Если выборки из подзапросов не большого размера, то можно просто через временные таблицы построить. На больших выборках, можно тоже временные таблицы, но они будут много скушивать с сервера памяти, и если её не хватит то производительность наоборот упадет. Но если у вас эти подзапросы постоянные, то может стоит сделать материализованные вьюхи, например? Или в принципе подумать над ненормализованной структурой бд.
Вопрос: Какая есть программа для поиска файлов в Windows?

Лучший ответ:
windows search добавить в настройках какие каталоги индексировать 
windows.microsoft.com/ru-ru/windows7/products/feat...

Худший ответ:
Любой программой поиска. Используй символы подстановки. Надо только объединить запросы символом ";" пример "Программа1;Программа2;Файл1;Документ12". Я советую программу Everything (www.voidtools.com) как самый толковый и самый быстрый поиск на NFFS томах. Вот обзор habrahabr.ru/post/42354 . Кроме всего в Everything можно использовать регулярные выражения.
Вопрос: Как после submit, редиректить на нужную страницу?

Лучший ответ:
В коде который отвечает за /actions/registration/ пишите что то вроде<?php

if (count($_POST))
{

  ...какой то код регистрации

 header('Location: http://mysite.com/link/to/redirect');
 die();

}

Худший ответ:
/actions/registration/ - где-то здесь у вас висит обработчик события.
В зависимости от того, что обрабатывает js(ajax) или php делайте после всех действий перенаправление:
js:window.location.href = 'адрес куда отправлять';
php:header("Location: куда отправлять");
В php будьте уверены, что перед редиректом нет вывода текста(и отправки заголовков в целом), иначе не сработает.
Вопрос: Как выработать предпринимательский подход?

Лучший ответ:
Заниматься делом, которое не нравится - это профукивать свою жизнь. Поэтому нужно найти пересечение множества всех вещей которые вам нравится делать, с множеством всех вещей которые нужны людям.
Что касается php/python и т.п. это не предпринимательство. Это наемный труд. 
Вы будете предпринимателем когда научитесь из одной вещи извлекать максимум прибыли за счет тиражирования её на много клиентов.

Худший ответ:
все просто: на хлебе и воде посидите неделю или  устройтесь подсобником на стройку - побегайте с носилками 12 часов в сутки. и предпринимательский подход придет очень быстро.
Вопрос: Как сделать индекс для запроса с group by и order by?

Лучший ответ:
AND `Ad`.`category` = 4
 ...
 AND `category_id` = 33
Что это значит?

Худший ответ:
А зачем группировка, если никаких агрегирующих функций нет?
Вопрос: Finder mac os x 10.9 — как вывести сначала папки, а потом файлы?

Лучший ответ:
Скачайте XtraFinder 

Худший ответ:
Open any folder, right click in it and choose Show View Options. After that set it up like this: Arrange by: Name, Sort by: Kind.
Но для диалоговых окон похоже не работает.
Вопрос: Как лучше создать простой сайт-каталог?

Лучший ответ:
Самый простой способ:
Правой кнопкой мыши -> создать каталог (папку). Правой кнопкой мыши на каталог -> свойства -> безопасность. Там настраиваете доступ.

Худший ответ:
Я искал подобное, не нашёл, пришлось написать самому для заказчика (:
Вопрос: Htmlbook.ru лучший ли сайт по HTML и CSS? Какое ваше мнение?

Лучший ответ:
в русскоязычном сегменте - да. А так еще w3schools.com неплох.

Худший ответ:
Очень хороший сайт:) Часто помогает.
Вопрос: Реклама в Android-приложениях

Лучший ответ:
Не встречал людей, которых реклама в приложениях радовала бы. Реклама убивает всякий интерес и радость от работы. Мне кажется лучше попробовать через знакомых или родственников в соседних странах, притом не такая это уж и тяжёлая работа для них.

Худший ответ:
Могу выразить мысль по поводу самой рекламы.
Скорее всего уместно сделать несколько вариантов приложения:
1. Бесплатное (с рекламой)
2. AdFree за определённую плату

В этом случае у пользователей всегда будет выбор — платить ОПСОСам за трафик, или разработчику за проведенные в дебагере ночи.
Вопрос: Как решить проблему?

Лучший ответ:
Если кто споткнулся с этой проблемой и не знает как её решить то попробуйте установить старую версию библиотеки в моем случаи это была PyAutoGUI потому я установил более старые версии библиотек:
PyScreeze==0.1.26
PyAutoGUI==0.9.50

Худший ответ:
Замените на locateOnScreen
Источник: https://github.com/asweigart/pyautogui/issues/598
Вопрос: Каким способом тренировать мозг?

Лучший ответ:
Тренировать нужно не столько мозг, сколько мотивацию и концентрацию.
1. Научитесь во время какой-либо работы, заниматься ТОЛЬКО этой работой.
2. Общее образование. Читайте разную литературу. Разные жанры. Стоит посмотреть классические фильмы, поскольку далеко не всегда имеет значение есть ли в фильме современная техника и мобилки, а важно как происходит взаимоотношения людей и активности. Это помогает выбрать правильный уровень абстрагирования при взгляде на вещи, соответственно повышает вашу адекватность. Широкий кругозор - это вообще как раз та самая штука, которая поможет вам вовремя сказать "чувак, ты уже xx времени часа бьешься в лоб над проблемой и все еще в тупике. Надо искать ДРУГОЙ подход". А может быть даже сразу косвенно на другой подход и намекнет.
3. Периодически меняйте деятельность на категорически отличающуюся - для этого вполне подойдет несколько хобии или времяпрепровождение, которое кардинально отличается от вашей обычной работы. Спорт, игры на реакцию - хорошо отвлекут от расчета матриц.

Худший ответ:
Мне понравился ресурс www.lumosity.com . Некоторые тренажёры очень даже хорошие, хотя и не все, есть конечно и не очень
Вопрос: Как понять, сможет ли человек заниматься тестированием?

Лучший ответ:
Я бы спросил, например, как бы он протестировал систему 2х лифтов в высотке, без спецификации, ожидая идеального поведения. Кейсов там достаточно — какой приедет первым, а если один вверх, а другой вниз, а если пустой вниз, а если пустой вверх, а если нажать две кнопки внутри, а если нажать и выйти, а войти и не нажать. Чем больше кейсов придумает за 15 минут, тем лучше.

Худший ответ:
Спросите "как бы вы проверили чайник?".

Хотя если серьёзно, надо убедится в том что человек способен думать. Постройте беседу так чтоб понять: сможет ли кандидат понять назначение/основные функции систем которых он проверяет? Имеет ли он опыт с подобными системами? Сможет ли он смоделировать (на бумажке) процесс интеракции «обычного» пользователя с системой?
Вопрос: Как разработаться в математике взрослому человеку?

Лучший ответ:
Если надо повторить начиная от школы: stepic.org Базовый курс подготовки к ОГЭ по математике
Если первые курсы универа, то вот: Введение в математический анализ
Можно записаться прямо на курс, и идти по плану (матан с 16 ноября стартует). Но вообще курсы уже были в том году, а значит можно найти их материалы.
Если попытаться верунть\зародить интерес к математике, то перед курсами прочитать "Удовольствие от Х" Строгаца, занятное чтиво, доступно о сути таких вещей как интегралы, дифференциал и т.д.

Худший ответ:
Повторять (именно повторять, а не заново учить) можно по книге Бамберг П., Стернберг Ш. Курс математики для студентов-физиков. 2 тома 2006. Есть в инете.
Вопрос: Чем и как в данной ситуации отформатировать раздел диска?

Лучший ответ:
Как я понял Windows 7 на первом томе таки стоит? Зачем тогда что-то придумывать?
Разве Панель управления\Администрирование\Управление компьютером\Управление дисками не умеет форматировать в NTFS?

Худший ответ:
можно сначала форматнуть в fat32 потом винда сама форматнет уже во что надо, подойдет и gparted live cd

но гы как я понял надо восстановить винду? тогда да только загрузочный диск, возможно на ноуте есть возможность вернуться к заводской ОС, но эт на винте надо чтоб был раздел с установочной виндой.
Вопрос: Как загрузить Microsoft SQL Server 2012?

Лучший ответ:
Chrome 20 + пров. — Ростелеком — всё нормально скачивается. А пробовали через прокси скачать?

Худший ответ:
Вроде всё ОК — редиректит на care.dlservice.microsoft.com/dl/download/4/5/1/4517F82E-E6CC-44C6-A3C1-95CB03DE3EFE/RUS/x64/SQLFULL_x64_RUS_Install.exe
Вопрос: Есть ли смысл покупать Macbook сейчас?

Лучший ответ:
Макбук - это рабочий инструмент, который служит многие годы. Если вы уж решились его купить, то не поскупитесь или возьмите кредит. Это нормально, вкладывать деньги в свой рабочий инструмент.
Для работы лучше всего взять новый макбук-про (либо топовый эйр 13), его производительности гарантированно хватит вам на ближайшие 5 лет.
Не слушайте людей, которые говорят что макбуки это понты. Бред. Идеальное сочетание железа, софта, автономности и удобства.
Вот посмотрите например на одного из конкурентов топовой прошке: вот. Цена тоже кусается, при хороших характеристиках, дешевый корпус и меньшее время автономной работы. Ну и общая надежность таких буков, не факт что он как часы протянет 5 лет.

Худший ответ:
Мак это больше понты, чем производительность. Ты можешь купить более мощный, серебристый, тонкий ноут если дело в весе и производительности.
Вопрос: Какой таск менеджер самый безопасный?

Лучший ответ:
Только локальное хранение данных обеспечит должный уровень безопасности.

Худший ответ:
Redmine, Jira, YourTrack можно поставить себе.
Вопрос: Как восстановить контакты Лотус?

Лучший ответ:
Это все , конечно, очень смешно, но для восстановления контактов в лотус или же как правило самого файла формата nsf потребуется программа. Такая как Recovery Toolbox for Lotus Notes предназначена как раз для извлечения данных/контактов из поврежденных файлов. https://recoverytoolbox.com/ru/lotusnotes.html

Худший ответ:
Три раза вслух и с интонацией.Names.nsf, Иже еси на небесех!
Да святится имя Твое,
да приидет Царствие Твое,
да будет воля Твоя,
яко на небеси и на земли.
Хлеб наш насущный даждь нам днесь;
и остави нам долги наша,
якоже и мы оставляем должником нашим;
и не введи нас во искушение,
но избави нас от лукаваго.
Outlook.
Извините, пожалуйста, не удержался :)
Вопрос: Как создать файл с расширением .db из файла с расширением .sql?

Лучший ответ:
формат db - это очень расплывчато.
С какой базой данных работает ваш SID ?

Худший ответ:
Давайте условимся говорить о формате sqlite, раз уже выяснили в комментариях.
Итак, качайте command-line shell отсюда: sqlite.org/download.html
Запускаете его, указав в качестве параметра имя нового файла БД, например sqlite3 demo.db (пример тут).
Дальше все инструкции на SQL поочередно вставляете и выполняете. Все будет писаться в указанный вами файл.
Если очень хочется GUI, то SQLiteStudio - то, что я обычно рекомендую. Там также нужно будет подключить новую БД, и выполнить в ней все ваши SQL конструкции.
Впрочем, Руслан Федосеев привел куда более удобный вариант, чем по одному запросу кидать))
Вопрос: Почему очень часто не отвечают на вопросы по опубликованным вакансиям на программиста-железячника Си/С++?

Лучший ответ:
1. Обычно на том конце провода рекрутер (часто из сторонней компании), который вообще не уполномочен отвечать и ему лишь бы по проще понять подходите ли вы и прокинуть вас дальше.
2. Лучший вариант, самостоятельно искать компании, в которых вы бы хотели работать и отправлять туда резюме.
3. Отправлять только(!) резюме. Вопросы про зарплатные вилки и прочее отложите на потом, они уместны только в конце собеседования. В остальных случаях они лишь отпугнут.
4. Если вас что-то не устоит, вы всегда сможет отказаться даже после оффера, но главное вначале получить его)

Худший ответ:
Кризис. Сейчас, наверно, везде спад.
И, если на hh присутствует в вакансиях ваш профиль, то вы зря его скидываете со счетов. Закройте резюме и отсылайте вакансии напрямую, если уж так не комфортно.  
И если вам что-то не скинули или не ответили, то стоит напоминать о себе. Бывает всякое на той стороне.
Вопрос: CarrierWave + russian как заставить работать?

Лучший ответ:
Отлаживать код умеете?
Сделать ap на original_filename. Если все-равно не понятна суть бага, то binding.pry и в дебагере поиграть с переменной.
С точки зрения оптимизационных моментов стоит завести отдельное поле file_name.  У меня в одном из проектов работает это так:def filename
    model.file_name = Russian.translit(original_filename) || model.file_name
end

Худший ответ:
original_filename.to_s
попробуйте.
И я не вижу что-бы вы в функцию передавали параметр original_filename, при этих раскладах это пустая переменная, так что правильно выдаёт ;)
Вопрос: В чем суть результата быстрого преобразования Фурье?

Лучший ответ:
Что бы получить 1 пик, необходим сделать циклический сдвиг значений значений частоты
Очень подробно это описано в этой статье на хабре
habrahabr.ru/post/112068/

Худший ответ:
Фурье как и любое разложение суть нахождение координат (коэффициентов для суммы ) в пространстве ортогональных векторов ( в данном случае косинусов с частотой кратной пи-чего-то-там ). Если ваш исходный вектор ( функция, в данном случае — косинус ) параллелен одному из базисов ( то есть частоты совпадают ), то вы получите нули кроме одного значения. Если же нет, то вы получите разложение на несколько векторов ( частот ), сумма которых с найденными координатами-коэффициентами даст вам исходную функцию ( с заданной точностью ).
Вопрос: Отдельно админка или общая?

Лучший ответ:
Я делаю так: Отдельная админка, а на сайте для админа кнопки типа редактирования пользователя, новостей и т.д.
А для удаления обязательно зайти в админку (чтобы случайно не удалить кого или чего). А делаю в выпадающем списке ссылку "редактировать в админ панели" а уже в админке кнопку удалить.

Худший ответ:
Отдельная админка проще и в реализации. Но как по мне "встроенная" удобнее.
Например нужно дельнуть аккаунт агрошкольника - нажал на ник, попал в его профиль и там ссылка "удалить юзера", куда проще чем искать его в админке.
Но это так, моё мнение.
Вопрос: Как сделать функцию Share, как в Dropbox?

Лучший ответ:
Очень странная модель выбрана, но... Каждому свое )
По поводу вопроса, то для Вас только 1 вариант это создание временной папки для каждого расшаренного файла из которой будете отдавать файлы без авторизации.
p.s.. Минусов Вашей схемы очень много. Например:
- как Вы будете бороться с дублированием файлов у пользователей? 
- Масштабирование файлов одного пользователя по разным серверам?
- масштабировать активные и старые файлы по серверам в зависимости от нагрузки на канал..

Худший ответ:
Всё дело в том, что физическое размещение файлов на сервере не обязано соответствовать паттерну урлов, которые будет видеть пользователь.userfiles - это вполне может быть виртуальный путь (location в терминах nginx)
Тогда легче будет сконструировать путь для шаринга.
На сервере структура файлов может быть
 - files - адрес хранилища
 - - adc/dcf - папка, имя которой сконструированно из имени файла
 - - - adcf832dnewjernrr43n5.png - имя файла в хранилище
Параллельно вам потребуется БД для хранения связей
adcf832dnewjernrr43n5 -> Origin file name | Size | Access date | Owner user | smth else
После этого вы средствами приложения сможете /userfiles/akaldygulov@gmail.com/Pretty_image.png
перенаправлять на/files/adc/dcf/adcf832dnewjernrr43n5.png/share/adcf832dnewjernrr43n5/Pretty_image.png
проверять доступ и снова перенаправлять на/files/adc/dcf/adcf832dnewjernrr43n5.png