FTPIFS Frequently Asked Questions 1. General questions a. What is FTPIFS? b. What is the main difference between FTPIFS and any other ftp client? 2. Unclear features a. What is MetaDrive? b. Why I have to use 'rd MetaDir' command to remove MetaDirectory? c. I am getting strange results while trying to use MetaDrive or FTPFS parameters (e.g. Passive, Limit, ...) d. I don't want to type my password as plain text in command line. e. I have a limited maximum of connections to a host. And FTPIFS has problems with this host. f. What is FTP proxy and what is HTTP proxy? g. You have directory cache feature. What do I have to do to refresh directory? i. What is ftp-to-ftp proxy mode? 3. Performance issues a. Is FTPIFS fast or slow client? b. How can I get CPS visible? c. What is the third parameter of recopy.cmd? 4. Dialup issues a. I can't use FTPIFS because I have dialup connection to Internet, can I? 5. Problems and limitations a. I can't work with FTPIFS drive from DOS (WINOS/2) session. General questions Q: What is FTPIFS? A: FTPIFS is an OS/2 ftp client. Q: What is the main difference between FTPIFS and any other ftp client? A: FTPIFS was made as OS/2 File System Driver. This means that you may attach FTP host to a drive letter and use it from any OS/2 session. Any OS/2 program will have direct access to FTP without making special changes to it. As an OS/2 developer you may use standard system calls to access FTP host using any programming language from C to REXX. I've used no special features or calls to make recopy.cmd. It is pure REXX. Unclear features Q: What is MetaDrive? A: As you know any disk, CD or diskette takes a drive letter. Systems, that has a plenty of resources use many drive letters - and so has little amount available for FTPIFS. Metadrive helps in such a situation. Metadrive allows you to have more than one host attached to a single drive letter. You can have a virtual directory structure like this: [W:\] MetaDrive | |-- Local Hosts from your LAN | | | |-- Company ftp.mycompany.net | +-- Myserver localhost | |-- Internet Internet hosts | | | |-- Active Direct-accessed hosts | | | | | +-- Provider ftp.myprovider.net | | | |-- Passive Hosts accessed using 'passive' option | | | | | |-- cdrom ftp.cdrom.com | | +-- hobbes hobbes.nmsu.edu | | | +-- Proxied Hosts accessed using http proxy | | | +-- friend ftp.myfriend.ml.org | +-- Quick ftp.software.ibm.com - Quick-accesed host in the MetaDrive root directory This tree can be constructed using next commands: [C:\]ftpfs use w: - [C:\]ftpfs use w:\Local - [C:\]ftpfs use w:\Local\Company ftp.mycompany.net [C:\]ftpfs use w:\Local\Myserver localhost [C:\]ftpfs use w:\Internet - [C:\]ftpfs use w:\Internet\Active - [C:\]ftpfs use w:\Internet\Active\Provider ftp.myprovider.net [C:\]ftpfs use w:\Internet\Passive - passive [C:\]ftpfs use w:\Internet\Passive\cdrom ftp.cdrom.com passive [C:\]ftpfs use w:\Internet\Passive\cdrom hobbes.nmsu.edu passive [C:\]ftpfs use w:\Internet\Proxied - proxy=http://proxy.myprovider.net:3128 [C:\]ftpfs use w:\Internet\Proxied\friend ftp.myfriend.ml.org proxy=http://proxy.myprovider.net:3128 [C:\]ftpfs use w:\Quick ftp.software.ibm.com Q: Why I have to use 'rd MetaDir' command to remove MetaDirectory? A: 'rd' command in OS/2 is used to remove empty directories. So most File Managers when you tell them to remove directory first deletes it's contents, and then removes the directory itself. So if you will try to remove MetaDirectory from FileManager It can erase the whole FTP host. Q: I am getting strange results while trying to use MetaDrive or FTPFS parameters (eg. Passive, Limit, ...) A: The most possible problem, is that you are using unregistered version. If you want try all the features, use demo key from \demo subdirectory. For details of demo limitation see demo.txt Q: I don't want to type my password as plain text in command line. A: FTPFS utility has the option to ask username and/or password from user. Here is examples of URLs with descriptions of modes: ftp://host Connect to host with username 'anonymous' and default password ftp://uname@host Connect to host with username 'uname' and provide default password if needed (Use this mode if server recognizes another username as anonymous, for example 'ftp') ftp://uname:pass@host Connect to host with username 'uname' and password 'pass' ftp://@host Ask for username; use default password ftp://:@host Ask for both username and password ftp://uname:@host Use username 'uname' and ask for password Note: 'ftp://' part of URL is optional Q: I have limited maximum of connections to a host. And FTPIFS has problems with this host. A: Use limit=n FTPFS option. Then FTPIFS will make no more than n connections to this host. Q: What is FTP proxy and what is HTTP proxy? A: FTP proxy is the proxy, that use special form of FTP login to establish connections to remote host. HTTP proxy is the proxy that uses HTTP protocol to provide access to many types of resources, including FTP. Here is the short questionary for you to determine what type of proxy you have: I am using this proxy in Netscape/Web Explorer/Opera/other Web browser This is HTTP proxy. I am using this proxy with WGET ftp client This is HTTP proxy. I am using this proxy with FTP browser (except wget) This is FTP proxy. I am using this proxy with FTP browser in no-proxy mode. To login I connect to proxy and enter 'password@host' as password This is FTP proxy. The proxy resides on 21 port. This is FTP proxy The proxy resides on 80 or 3128 port. This is HTTP proxy If you still don't know if your proxy FTP or HTTP try enter [C:\]telnet -p proxy_port proxy_host After the screen goes blank, wait a little. If you can see invitation, starting with '2' symbol, this is FTP proxy. If you don't see anything, this is HTTP proxy. Q: You have directory cache feature. What do I have to do to refresh directory? A: Directory refresh is automatically started when you reread the directory. When data will be transferred to your system, old copy of directory will be discarded. So, to update directory, reread directory once (for example issue 'dir ' command), wait some time (for directory to transfer) and then reread it once more. Also cached copy of directory is automatically discarded when one of 'write' commands entered. 'Write' commands are: MakeDir, RemoveDir, DeleteFile Close file (opened in write mode). Additional commands that initiate refreshing are: GetFileAttributes, OpenFile Q: What is ftp-to-ftp proxy mode. A: Let's describe the situation when you need to copy files from one FTP server to another. Using any FTP browser you will first download this file to your local workstastion and then upload it to destination server. There are some minuses of such operation: 1)You will need space on your local drive to put file on. 2)Data flow will be unoptimal (Source server -> your workstation -> destination server) Data is send over network twice and things get more bad if you have slow connection to Internet. Also you can you FTPFS in normal mode. The only minus will be unoptimal data flow. Using ftp-to-ftp proxy mode you will simply control copying, and the data will be transfered directly from one server to another. Performance issues Q: Is FTPIFS fast or slow client? A: I've compared FTPIFS with WGET on local server. FTPIFS was faster than WGET for nearly 10%. In general, there is some overhead in more often directories downloads. But file transferring supposed to be as fast as in other FTP client. Also, you may compare them by yourself (check next answer). Q: How can I get CPS visible? A: Use recopy.cmd enclosed. This command file shows you CPS and ETA. Q: What is the third parameter of recopy.cmd? A: This parameter is the block size of transfer. Enlarging it you can lower overhead, but don't make it too large - this is the memory to be allocated while transferring. There are three types of overhead: FTPIFS overhead (The smallest one - simply reading cycle) System overhead (passing commands from program to FTPIFS) REXX overhead (Output of status line after processing of each block) But: there is block size limitations on first two levels FTPIFS will break the request it receives into ~20Kb blocks, System accepts blocks no larger than 65Kb So, if you select 100Kb block, you will have two blocks on system and ~5 blocks at FTPIFS level. But you will lower the most time-consuming overhead: REXX (since screen output is the most time-consuming operation) I can propose you to use blocks, that can be transferred in ~1 second. recopy.cmd default is normal for dialup operations, but if you are using stronger channel, raise it (or even change default in recopy.cmd if you know REXX). Dialup issues Q: I can't use FTPIFS because I have dialup connection to Internet, can I? A: You can. FTPIFS was especially designed for Dialup usage: It has reget feature It has proxy/passive modes You must not reattach drives after redials, it will automatically reconnects to a host. Problems and limitations Q: I can't work with FTPIFS drive from DOS (WINOS/2) session. A: You can't use FTPIFS drive from DOS sessions (with exception of case-insensitive servers). The problem is that DOS uppercases file names. It is normal for OS/2, but most FTP servers are case-sensitive and they will fail. I am looking for workarounds, but they are all too time-consuming.