Re: LWP::Simple getstore with absolute path not working
- From: "szr" <szrRE@xxxxxxxxxxxxxxx>
- Date: Mon, 16 Jun 2008 00:41:15 -0700
emrefan wrote:
On Jun 16, 5:55 am, "szr" <sz...@xxxxxxxxxxxxxxx> wrote:
Ben Morrow wrote:
Quoth emrefan <dksle...@xxxxxxxxxxx>:
I am using the following line of sort in a batch file to fetch
things off the network quickly and mostly I have success but if I
need to indicate an absolute path in the URL, I always get a "not
found" error. I have perl 5.8.x, URI.pm 1.36 and URI::URL.pm 5.03
on the XP system
where did the test. Help!
perl -MLWP::Simple -e "getstore( '%1', '%2' );"
Oh, the exact URL that I tested it was something like this:
ftp://user:passw...@xxxxxxxxxxxxxxxxxxxxxxxx//dir-under-the-root/some-dir/some-file
I thought the "//" before "dir-under-the-root" should have it
working for me, but no.
FTP urls don't work like that. The standard hack is
Actually the url he gave is mostly correct (should be just one "/"
after the host par:
ftp://user:passw...@xxxxxxxxxxxxxxxxxxxxxxxx/dir-under-the-root/some-dir/some-file
This should work just fine.
You may want to test it in a browser and then in your script add
checks to catch cases where adir or file doesn't exist.
ftp://host/%2fdir-under-the-root/some-dir/some-file
where %2f is a url-encoded '/'; but strictly speaking this requires
your FTP server to support a chdir to '/dir-under-the-root' in one
go, which is not required. Most do, however.
Why would it need to do that? Give that url, it should be going to
"/fdir-under-the-root/some-dir/some-file" in one go.
When a user logs in via ftp (including when the user is "anonymous"),
he is placed in wherever is considered his home directory
Actually this is server/config (and client/config) dependant. For
example on my personal system, if I login in as a run of the mill user,
it drops me into my home (actually it chroots unless otherwise specified
for that user in the ftpd config.)
and if this home directory does not happen to be "/", then the URL
with just a slash after the hostname is not going to work as intended.
That's because it expects an absolute path. Depending on the ftp
server's configuration, the ftp root that your login "sees" could be in
fact the home dir itself (which is the case when some form of chroot'ing
is used), or the true root of the system, in which case you referernce
your home dir be something like /home/user, depending on the the
platform/OS.
If you want to access directory 'foo' that resides in your home dir, and
your ftp's root / is chroot'ed to your home dir, they this should work:
ftp://server/foo
else, if you are not chrooted (where the ftp's root is the real root of
the system), then
ftp://server/home/johnsmith/foo
is is what you want.
Again, it depends on what / (root) for your ftp login is, which is
dependant on the ftp server software and the platform it runs on.
I tested that, had problems and so queried. With an "%2f" after
the hostname, it worked. I reckond I'd call that a bug in
URI.pm & co. but at least I now have a workaround.
When you login manually via ftp with the same account, and type "cd /"
and they "pwd" or "ls", where do you see your self, in your home
directory, or in the server's real root directory?
Also, do you know what platform your ftp server is running on?
--
szr
.
- References:
- LWP::Simple getstore with absolute path not working
- From: emrefan
- Re: LWP::Simple getstore with absolute path not working
- From: Ben Morrow
- Re: LWP::Simple getstore with absolute path not working
- From: szr
- Re: LWP::Simple getstore with absolute path not working
- From: emrefan
- LWP::Simple getstore with absolute path not working
- Prev by Date: FAQ 8.4 How do I print something out in color?
- Next by Date: Re: Offsetting dates from the past in Date::Manip
- Previous by thread: Re: LWP::Simple getstore with absolute path not working
- Next by thread: Re: LWP::Simple getstore with absolute path not working
- Index(es):
Relevant Pages
|