-
Погроммист (27.03.16 14:57) [0]В общем. Есть задача нужно хранить файлы на хостинге. Там есть ftp и веб. Хочу сделать так чтобы из моей программы пользователи могли закачивать файлы и получать их обратно в мою программу, но не сохраняя на диск то есть в TMemoryStream. Причем должно быть разграничение доступа к файлам для разных пользователей. Грубо говоря, каждый пользователь должен иметь доступ только к своим файлам. Но вижу такую проблему, если я в своей программе сохраню логин пароль к ftp. То любой кулхацкер сможет его оттуда вытащить зайти на фтп и взять оттуда все что захочет или удалить там все. Можно ли что нибудь с этим сделать?
Есть идея из программы вызывать php скрипт, который будет выкладывать на ftp только требуемый в данный момент файл, и в скрипте будет проходить авторизация, таким образом пользователи не будут иметь потенциальный доступ ко всем файлам. Но 1) не знаю доступны ли функции фтп в пхп на моем сервере. а главное двойное копирование будет замедлять загрузку файла в программу.
Какие есть еще варианты? -
Погроммист (27.03.16 17:04) [1]Идеально бы было если бы пхп скрипт выдавал файл прямо в TMemoryStream, но как такое сделать и возможно ли это я вот не знаю
-
megavoid © (27.03.16 17:29) [2]
> Какие есть еще варианты?
Разные, например, S3, каждому юзеру по бакету, но это я так, просто мысли вслух :)
Про ftp сразу забудь. На вебсервере заведи три php файла, один будет управлять авторизацией, его будут инклюдить два других файла, первый сохранять в папку юзера файлы, второй отдавать обратно. Это необходимый минимум для указанного тобой тз.
// auth.php
<?php
if(!$post["login"] && !$_post["password"]) die(0);
// store.php
<?php
require_once("auth.php");
file_put_contents( "$user/$filename", $post["_data"] );
> но как такое сделать и возможно ли это я вот не знаю
// retreive.php
<?php
require_once("auth.php");
echo file_get_contents( "$user/$filename" );