[PerlMapToStorageHandler] Basic URI to File translation example

[PerlMapToStorageHandler] Basic URI to File translation example

am 17.04.2010 18:32:13 von Robert Smith

PerlMapToStorageHandler

I would like to use the PerlMapToStorageHandler to translate a URI file =
request into a Filesystem file request. I have a couple functions to =
check and see if a file exists, and if not, then copy it from a remote =
server locally before allowing the request to go to the next phase.



Basic gist of what I want to handle in the PerlMapToStorageHandler is:

1) Client makes a request to server for /package_20.zip

2) My handler:
gets the filename from the URI (no problem here)
maps the filename to a real file on the file system
checks to make sure the file exists

File does not exist:
copy file from another location to =
destination
properly MapToStorage, and let the next =
phase take place
=09


File exists:
properly MapToStorage, and let the next =
phase take place

3) Client receives file=

Re: [PerlMapToStorageHandler] Basic URI to File translation example

am 17.04.2010 19:22:02 von torsten.foertsch

On Saturday 17 April 2010 18:32:13 Robert Smith wrote:
> PerlMapToStorageHandler
>=20
> I would like to use the PerlMapToStorageHandler to translate a URI file
> request into a Filesystem file request. I have a couple functions to che=
ck
> and see if a file exists, and if not, then copy it from a remote server
> locally before allowing the request to go to the next phase.
>=20
>=20
>=20
> Basic gist of what I want to handle in the PerlMapToStorageHandler is:
>=20
> 1) Client makes a request to server for /package_20.zip
>=20
> 2) My handler:
> gets the filename from the URI (no problem here)
> maps the filename to a real file on the file system
> checks to make sure the file exists
>=20
> File does not exist:
> copy file from another location to destination
> properly MapToStorage, and let the next phase take place
>=20
>=20
>=20
> File exists:
> properly MapToStorage, and let the next phase take place
>=20
> 3) Client receives file
>=20
The only thing to watch out here is either to fill in $r->finfo+$r->path_in=
fo=20
correctly or to return DECLINED and have the core m2s handler done it. $r-
>filename is normally set by the translation handler. The core trans handle=
r=20
does just $r->document_root.$r->uri. You can change that if you need. The c=
ore=20
m2s handler also looks for .htaccess and applies and =20
blocks. So better to return DECLINED from your handler. Otherwise the AAA=20
phases might not do what you want.

Have you thought about mod_proxy+mod_cache to solve the problem?

Torsten Förtsch

=2D-=20
Need professional modperl support? Hire me! (http://foertsch.name)

Like fantasy? http://kabatinte.net