SFTP-сервер отвечает HTTPS-файлом

У меня есть сервер REST-API по HTTPS. Мне нужен способ вызова API, когда файл извлекается с использованием SFTP. Контент генерируется динамически по запросу. Есть ли простой способ сделать это без необходимости добавлять учетные записи пользователей и вводить дыры в безопасности на сервере? Наличие ключа позволит любому получить содержимое файла, но ничего больше.

Это то, что у меня есть:

GET https://myservice/api/items/get?key=XXXX

, и при этом я получу то же самое:

sftp XXXX@myservice:/items (or sftp myservice:/items/XXXX)
0
задан 7 October 2015 в 12:48

1 ответ

Я думаю , я понимаю то, что Вы имеете в виду. Вы хотите произвести файл на основе нынешнего пользователя (или требуемый файл). Вы в настоящее время делаете это по HTTPS, но Вы хотите также сделать его доступным по SFTP... Правильно? Интересная проблема.

Вы могли бы быть потрясены услышать, что я не думаю, что есть что-либо, что может сделать то, что Вы спрашиваете из коробки.... Что-либо возможно все же.

<час>

Мой первый подход включает написание Вашей собственной файловой системы!

я начал бы с ПЛАВКОГО ПРЕДОХРАНИТЕЛЯ. Кроме того, плавкий предохранитель питона. Вот единственная обучающая программа, которую я когда-либо использовал для ПЛАВКОГО ПРЕДОХРАНИТЕЛЯ. Это получит Вас до такой степени, когда, Вы можете начать редактировать вещи. Я был бы:

  • Имеют его, перечисляют всего один [поддельный] файл в readdir()
  • , Разрабатывают, как найти, что имя пользователя от файловой системы
  • Hotwire open() и read() вынимает из requests.get('your URL') использование имени пользователя. open(), возможно, просто должен был бы фальсифицироваться и read() быть ручкой на эти requests запрос.
  • Вы должны будете, вероятно, исправить и кукла многие из других методов, таким образом, они возвратят данные, но это будет, очевидно, фальсифицироваться большую часть времени
  • гора эта файловая система ПЛАВКОГО ПРЕДОХРАНИТЕЛЯ где-нибудь в Вашем SFTP, который все видят как только для чтения

, Это работало бы на любого подход sftp (Вы могли посмотреть на весь путь вместо пользователя, например), но Вам будет нужен единственный счет sftp, с которым могут авторизоваться люди.

<час>

, С другой стороны, если у каждого пользователя есть счет, Вы могли бы попытаться контролировать доступ к справочнику, принадлежавшему каждому пользователю. inotifywatch и inotifywait может позволить Вам наблюдать за доступом к справочнику.

inotifywait -mrq --format '%w' /home/*/magicdir/ | while read DIR; do
    user=${DIR:6:-10}  # that is based on the length of /home/ and /magicdir/
    wget -qO $DIR https://path/to/items/${user}
done

И отпуск то управление где-нибудь на заднем плане. Это обновит файл с веб-сайта каждый раз, они получают доступ к справочнику. Вы могли бы хотеть согласовать его (с echo blaaa $DIR), чтобы удостовериться, что это не кует сервер. Это может не показать файл в первый раз, когда они загружают справочник.

0
ответ дан 7 October 2015 в 22:48
  • 1
    Я думаю, что было бы желательно начать чувствовать себя комфортно большим количеством systemd способа, с: sudo systemctl restart networking.service у нас есть те же результаты. – dgonzalez 26 December 2016 в 17:56

Другие вопросы по тегам:

Похожие вопросы: