Disponen de diversos métodos, en dos sabores: uno para gestionar ficheros de texto y otros para ficheros binarios. Éstos últimos reciben su nombre a partir de la orden utilizada más "lines" para la versión de texto y más "binary" para la versión binaria.
Las instancias de FTP cuentan con los siguientes métodos:
0
, no
muestra información de depuración. Un valor de 1
produce una cantidad
moderada de información de depuración, del orden de una línea por petición. Un
valor de 2
o superior produce la máxima cantidad de información de
depuración, presentando cada línea enviada y recibida sobre la conexión de
control.
21
, como dice la especificación del protocolo FTP. Es
poco común que sea necesario especificar un número de puerto diferente. La
función se ha de llamar una sola vez para cada instancia y no debería llamarse
en absoluto si se especificó un servidor al crear la instancia. El resto de los
métodos sólo funcionan tras realizarse la conexión.
'anonymous'
, la contraseña predeterminada
es "realuser@host" donde realuser es el nombre real
del usuario (a partir de las variables de entorno $LOGNAME o
$USER y host es el nombre del nodo devuelto por
socket.gethostname(). Se ha de llamar a esta función una sola vez por
instancia, tras establecer la conexión. No se ha de llamar en absoluto si se
proporcionó un nombre de servidor y usuario al crear la instancia. La mayor parte de las
órdenes de FTP sólo están permitidas tras iniciar sesión.
'RETR nombrefichero'
.
Se llama a la función callback para cada bloque de datos recibido, con un
solo argumento, el bloque de datos. El argumento opcional maxblocksize
especifica el tamaño máximo del bloque que se ha de leer a bajo nivel, al nivel
del socket generado para realizar la transferencia (será también el tamaño
máximo de la cadena de datos que llegue a callback). El valor
predeterminado es razonable. rest indica lo mismo que en el método transfercmd().
'LIST'
). Se llama a la función callback para cada línea recibida, eliminando el retorno final. La función callback predeterminada presenta la salida a sys.stdout
.
"STOR nombreFichero"
.
file es un objeto fichero abierto, que se lee con su método read(),
en bloques de tamaño blocksize para proporcionar los datos a enviar.
Si se proporciona el parámetro opcional rest, se envía una orden "REST" al servidor, pasando rest como argumento. rest suele ser un punto de arranque en bytes, que indica al servidor que debe enviar los datos a partir de dicho punto de arranque, saltándose lo bytes iniciales indicados. Es importante destacar que la RFC 959 sólo requiere que rest sea una cadena que contenga caracteres del rango ASCII imprimibles (entre 33 y 126). El método transfercmd(), por lo tanto, convierte rest a una cadena, pero no realiza ninguna comprobación sobre su contenido. Si el servidor no reconoce la orden "REST", se lanzará una excepción error_reply. En tal caso , se ha de llamar a transfercmd() sin argumento rest.
None
como tamaño esperado.
cmd y rest significan lo mismo que en transfercmd().
sys.stdout
. Este método devuelve None
.
None
. La orden "SIZE" no es estándar,
pero está soportada en la mayoría de las implementaciones de servidor
comunes.