You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Mario Ivankovits <ma...@ops.co.at> on 2007/08/30 10:03:48 UTC

[vfs] Re: Specifying options to FTP etc..

Hi! 
> I don't quite agree with this - this may be the common case for HTTP,
> but the URI spec does not enforce it.
Ok, but how should we differentiate between these both use-cases?

If we would like to allow this style of URL we need some special
delimiter to know what to pass to VFS as configuration and what to pass
further to the server.
And no - I don't want to care if we are using the HTTP or any other scheme.

Hmmm ..... what we can do might be something like this.

We add a new resolveFile method to the FileSystemManager interface:
FileObject resolveFileWithUrlConfiguration(String uri)

and we separate the VFS configuration using the double question-mark (??)

A url like:
http://www/path/cgi-bin/send.pl?FILE=ABC&TYPE=PDF??proxyHost=proxy.host&proxyPort=8080

will work then.

resolveFileWithUrlConfiguration will strip the part after (including) ??
and create the FileSystemOption stuff (if possible) which means the vfs
configuration string will not be shown in the filename.

Then
FileObject fo = manager.resolveFileWithUrlConfiguration(....);
FileObject fo2 =
manager.resolveFileWithUrlConfiguration(fo.getName().toString);

will not use the same filesystem configuration.

This limitation makes it look a little bit hacky - we might remove this
limitation later.


What do you think?

Ciao,
Mario


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [vfs] Re: Specifying options to FTP etc..

Posted by Mario Ivankovits <ma...@ops.co.at>.
Hi!  
> I think we should leave it upto the scheme to decide. So http may
> decide to pass it to the server, while ftp may decide to use it to
> talk to the server. i.e. each implementation will know the options
> they understand, enforce them and pass any remainder to the server.
> How does that sound?
It sounds complicated ... :-(

We have to parse all the url parameters and use a special naming scheme
to avoid naming clashes,no?
I am not convinced that this is a good idea - you have to deal with all
the url encoding stuff etc.. maybe even with the charset - which is also
a FileSystemOption for some filesystems.



Ciao,
Mario


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [vfs] Re: Specifying options to FTP etc..

Posted by "Asankha C. Perera" <as...@wso2.com>.
Hi Mario
>> I don't quite agree with this - this may be the common case for HTTP,
>> but the URI spec does not enforce it.
>>     
> Ok, but how should we differentiate between these both use-cases?
>   
I think we should leave it upto the scheme to decide. So http may decide 
to pass it to the server, while ftp may decide to use it to talk to the 
server. i.e. each implementation will know the options they understand, 
enforce them and pass any remainder to the server. How does that sound?

Also this seems to be perfectly valid with the specs

RFC 1738; FTP (see also RFC959)

ftpurl         = "ftp://" login [ "/" fpath [ ";type=" ftptype ]]
fpath          = fsegment *[ "/" fsegment ]
fsegment       = *[ uchar | "?" | ":" | "@" | "&" | "=" ]
ftptype        = "A" | "I" | "D" | "a" | "i" | "d"

There is already type=ftptype in use to indicate information about the 
transfer, thus I believe indicating to use passive ftp belongs to the 
same category i.e. ?passive=true
> and we separate the VFS configuration using the double question-mark (??)
>
> A url like:
> http://www/path/cgi-bin/send.pl?FILE=ABC&TYPE=PDF??proxyHost=proxy.host&proxyPort=8080
>
> will work then.
>   
I don't think that ("?" followed by "??") adheres to the spec though..

thanks
asankha

Re: [vfs] Re: Specifying options to FTP etc..

Posted by Mario Ivankovits <ma...@ops.co.at>.
Hi!
> I think the use of the ?? would not be a good URI scheme. However, maybe we
> could simply make the VFS parameters unique. For example add vfs. in front
> of them. 
>
> For example, 
> http://www/path/cgi-bin/send.pl?FILE=ABC&TYPE=PDF&vfs.proxyHost=proxy.host&vfs.proxyPort=8080
>   
Yes, for sure, this could make it too - I thought about it too. Even if
I am still not that happy with this query-string parsing/repacking stuff
I'd commit it if someone contributes a patch.

I'll help with dealing with the details, but have not much time to do it
myself yet.
We have to figure out:
* do we rely on url-escape strings with this url parameters too? (I'd
say no - except for the "&" character itself)
* if we do - how to deal with the used charset? (I'd say we expect them
to be in UTF-8 then, regardless of the charset of the other parameters)
* do we strip these parameters off so that we have a query string
without these special fields when sending to the remote host? (I'd say yes)
* enhance the filename so that we have the queryString (as now) and a
remoteQueryString which will be passed to the remote server
* use the new remoteQueryString e.g. with the http filesystem
implementation.


It would be great if someone could open a JIRA ticket at least that we
don't loose the request.

Thanks!
Ciao,
Mario


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [vfs] Re: Specifying options to FTP etc..

Posted by pizak <pa...@fremantle.org>.
Mario

I think the use of the ?? would not be a good URI scheme. However, maybe we
could simply make the VFS parameters unique. For example add vfs. in front
of them. 

For example, 
http://www/path/cgi-bin/send.pl?FILE=ABC&TYPE=PDF&vfs.proxyHost=proxy.host&vfs.proxyPort=8080

or 

ftp:/fremantle.org/file?vfs.passive.ftp=true

Paul

Mario Ivankovits wrote:
> 
> Hi! 
>> I don't quite agree with this - this may be the common case for HTTP,
>> but the URI spec does not enforce it.
> Ok, but how should we differentiate between these both use-cases?
> 
> If we would like to allow this style of URL we need some special
> delimiter to know what to pass to VFS as configuration and what to pass
> further to the server.
> And no - I don't want to care if we are using the HTTP or any other
> scheme.
> 
> Hmmm ..... what we can do might be something like this.
> 
> We add a new resolveFile method to the FileSystemManager interface:
> FileObject resolveFileWithUrlConfiguration(String uri)
> 
> and we separate the VFS configuration using the double question-mark (??)
> 
> A url like:
> http://www/path/cgi-bin/send.pl?FILE=ABC&TYPE=PDF??proxyHost=proxy.host&proxyPort=8080
> 
> will work then.
> 
> resolveFileWithUrlConfiguration will strip the part after (including) ??
> and create the FileSystemOption stuff (if possible) which means the vfs
> configuration string will not be shown in the filename.
> 
> Then
> FileObject fo = manager.resolveFileWithUrlConfiguration(....);
> FileObject fo2 =
> manager.resolveFileWithUrlConfiguration(fo.getName().toString);
> 
> will not use the same filesystem configuration.
> 
> This limitation makes it look a little bit hacky - we might remove this
> limitation later.
> 
> 
> What do you think?
> 
> Ciao,
> Mario
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Specifying-options-to-FTP-etc..-tf4346550.html#a12492674
Sent from the Commons - Dev mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org