webserver提供延迟的文件请求

时间:2014-03-12 15:28:06

标签: php web-services perl delay

我正在试图弄清楚是否可以配置网络服务器,以便延迟提供文件请求。因此,例如,如果我要提供此文件http://www.example.url/picture.jpg,我希望数据传输仅在请求发出后2秒开始......或任何其他任意数字。重要的是,这应该独立于文件的访问方式,因此只是一个HTML解决方案是行不通的。

我在superuser.com上问了一下,那里的人建议我调查perl或php,把这些东西放在一起,这样可以为我提供所需的功能。现在我对上述任何一种语言没有任何经验,但我认为将这些语言放在一起并不会太复杂,我的问题是......有人可以帮助我开始吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

如果您将Apache2与mod_perl一起使用,那么您可以使用handlers之一进行此过滤。但是,即使以下代码为例,您也需要熟悉perl和服务器配置:

package ImgPause;

use Apache2::RequestRec();

use Apache2::Const -compile => qw(FORBIDDEN OK);

use strict;
use warnings;

our %images = (
    '/adesert.jpg'    => 4,
    '/afish.jpg'      => 4,
    '/aflower.jpg'    => 4,
    '/ahouse.jpg'     => 4,
    '/akoala.jpg'     => 4,
    '/apenguin.jpg'   => 4,
    '/atulip.jpg'     => 5,
)

sub handler {
    my $r = shift;

    my $host = $r->header_in('Host');
    my $uri = $r->uri;

    if ($images{$uri}) {
        sleep $images{$uri};
    }

    return Apache2::Const::OK;
}

1;

__END__