Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по вебу   Найти похожие ветки 

 
Tornado   (2009-05-24 00:12) [0]

Спрошу здесь, может кто сталкивался. Есть веб сервер (апач второй), на нем крутится некий сайт. На этом сайте периодически выкладываются ссылки на некие архивы. Архивы достаточно объемные. Встала задача запретить пользователям скачивать с сайта эти архивы допустим с 9 утра и до 18 часов, в остальное время - разрешить. Есть одно НО, ссылка должна присутствовать всегда чтобы пользователь мог добавить ее например в DMaster"a и назначить начало скачивания к примеру на 18.30. Вот что можно сделать?


 
DVM ©   (2009-05-24 00:15) [1]


> Вот что можно сделать?

файлы на фтп сервере, фтп включается и выключается по расписанию CRON - ом.


 
Tornado   (2009-05-24 00:16) [2]


> DVM ©   (24.05.09 00:15) [1]

Мысль, обмозгую...а крон - это что за прога? Слышал что-то вроде выполнения задач по расписанию? (не пользовал)


 
DVM ©   (2009-05-24 00:20) [3]


> а крон - это что за прога?

Да, это демон (типа службы плпнировщика в WIN). Необязательно кстати фтп останавливать, можно просто менять его конфигурацию и перезапускать.
В этом случае не понадобится никакого программирования.
Манипулировать можно не только фтп, можно файерволлами, правами файлов, много вариантов вообще есть.


 
Tornado   (2009-05-24 00:22) [4]


> DVM ©   (24.05.09 00:20) [3]

Ясно, попробую...Крон - он платный?


 
DVM ©   (2009-05-24 00:23) [5]


> Крон - он платный?

Упаси бог. Он входит в состав практически всех дистрибутивов Linux, Unix, FreeBSD и т.д. с исходниками. Другое дело, что доступ к нему на платном хостинге может быть небесплатным.


 
Tornado   (2009-05-24 00:25) [6]

Тут дело такое, апач стоит на ВинХР, это наш внутренний сайт (да даже не сайт, просто страничка с сылками)


 
DVM ©   (2009-05-24 00:25) [7]


> Tornado   (24.05.09 00:22) [4]

У тебя сервер то под *NIX ? Если под Win, то планировщик стандартный с успехом заменит CRON.


 
Tornado   (2009-05-24 00:25) [8]

Знаю что не правильно, но пока ничего сделать не могу :)


 
Tornado   (2009-05-24 00:26) [9]


> DVM ©   (24.05.09 00:25) [7]

Все понял спасибо


 
antonn ©   (2009-05-24 00:31) [10]

если скачка по http то как варинт костыльный - планировщиком добавлять в папку с файлами htaccess с "deny from all" и удалять когда надо :)


 
antonn ©   (2009-05-24 00:31) [11]

а может и сам апач умеет время смотреть, в htaccess...


 
Anatoly Podgoretsky ©   (2009-05-24 08:58) [12]

Написать небольшой обработчик и включить перехватчик, Апаче имеет эту хакерскую штучку. Подробности в справке по Апаче. Название опции не помню, искать самостоятельно по документации.

http://www.domain.com/fles/несуществующая папка/ссылка и никаких фтп, планировщиков, htaccess не надо.


 
antonn ©   (2009-05-24 13:28) [13]


> Anatoly Podgoretsky ©   (24.05.09 08:58) [12]

эта штучка называется mod_rewrite, но фигня в том, что нужно не скрыть реальный урл, а запретить скачку по времени. потому и написал [11]


 
Anatoly Podgoretsky ©   (2009-05-24 13:38) [14]

> antonn  (24.05.2009 13:28:13)  [13]

Не я про подобную фигню не говорил. При той фигне не будет "скрытия" URL будет немного иначе выглядеть, но так он будет выглядеть всегда. Я не помню как фигня называется, я уже давно Апач не использую. Результат будет такой - в определеный момент времени будут отдаваться страницы, а в другое время, что угодно.

Другой путь это динамические страницы, в зависимости от времени, но вроде это по условию не проходит.


 
easy ©   (2009-05-24 13:56) [15]


> Вот что можно сделать?

скриптом отдавать, например
<?php
$fullpath = "/path/to/files/";

function GiveFile($path, $size){
   if ($fd = fopen ($path, "r")) {
           
       $path_parts = pathinfo($path);
       $ext = strtolower($path_parts["extension"]);
       switch ($ext) {
           case "pdf":
               $content_type = "application/pdf";
           break;
           case "txt":
               $content_type = "text/plain";
           break;
           case "gz":
               $content_type = "application/x-gzip";
           break;
           case "zip":
               $content_type = "application/zip";
           break;
           case "jpg":
               $content_type = "image/jpeg";
           break;
           case "gif":
               $content_type = "image/gif";
           break;
           case "png":
               $content_type = "image/png";
           break;
           default:
               $content_type = "application/octet-stream";
           break;
       }
       header("Content-type: $content_type");
       header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");
       header("Content-length: $size");

       while(!feof($fd)) {
           $buffer = fread($fd, 2048);
           echo $buffer;
       }
   }
   fclose ($fd);
}

function check_time(){
   $hour = date("G");
   return !($hour>=9 and $hour<=18);
}

if (isset($_GET["download"]) and check_time()){
   $fullpath = $fullpath+$_GET["download"];
   $fsize = filesize($fullpath);
   GiveFile($fullpath,$fsize);
}

?>
#http://site.ru/index.php?download=filename.zip


 
antonn ©   (2009-05-24 14:03) [16]


> easy ©   (24.05.09 13:56) [15]

придется реализовывать 206 код и опять же лишняя нагрузка на вебсервер.


> Anatoly Podgoretsky ©   (24.05.09 13:38) [14]

в [12] описаны mod_rewrite :)



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.007 c
2-1243871211
Максим
2009-06-01 19:46
2009.07.26
TPopUpMenu + WM_COMMAND


15-1240783011
xenonxenon
2009-04-27 01:56
2009.07.26
Как соединить много текстовых файлов...


15-1243283277
dis12345
2009-05-26 00:27
2009.07.26
Установка delphi


2-1243513363
night_light
2009-05-28 16:22
2009.07.26
методы Assign и Canvas.Drawобъекта TBitmap


9-1181478232
Eugewik
2007-06-10 16:23
2009.07.26
При условии несколько действий





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский