Buenas!
El caso es que no consigo subir un archivo via ftp con python y he buscado mucha información y todavía no encuentro solución :'(
Asi es como lo he echo en la consola
>>> import getpass
>>> from ftplib import FTP
>>> ftp=FTP("nonamewebsite.zxq.net")
>>> getpass=getpass.getpass()
Password:
>>> ftp.login("nonamewebsite_zxq", getpass)
'230-User nonamewebsite_zxq has group access to: vhosts \n230-OK. Current restricted directory is /\n230 0 Kbytes used (0%) - authorized: 6144000 Kb'
>>> ftp.getwelcome()
'220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------\n220-You are user number 45 of 500 allowed.\n220-Local time is now 21:02. Server port: 21.\n220-This is a private system - No anonymous login\n220-IPv6 connections are also welcome on this server.\n220 You will be disconnected after 2 minutes of inactivity.'
>>> ftp.retrlines("LIST")
drwxrwxrwx 2 876654 vhosts 4096 Sep 11 22:16 .
drwxrwxrwx 2 876654 vhosts 4096 Sep 11 22:16 ..
-rw-r--r-- 1 876654 vhosts 6 Sep 11 22:16 .ftpquota
-rw-r--r-- 1 876654 vhosts 776 Sep 11 22:16 index.html
'226-Options: -a -l \n226 4 matches total'
>>> ftp.delete("index.html")
'250-0 Kbytes used (0%) - authorized: 6144000 Kb\n250 Deleted index.html'
>>> upload_file=open("/index.html", "r")
>>> ftp.storbinary("STOR /index.html", upload_file)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/ftplib.py", line 473, in storbinary
conn.sendall(buf)
TypeError: 'str' does not support the buffer interface
>>> files=ftp.dir()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/ftplib.py", line 528, in dir
self.retrlines(cmd, func)
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/ftplib.py", line 439, in retrlines
with self.transfercmd(cmd) as conn, \
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/ftplib.py", line 379, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/ftplib.py", line 337, in ntransfercmd
host, port = self.makepasv()
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/ftplib.py", line 315, in makepasv
host, port = parse227(self.sendcmd('PASV'))
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/ftplib.py", line 836, in parse227
raise error_reply(resp)
ftplib.error_reply: 200 TYPE is now ASCII'
Como veis he eliminado el archivo antiguo "index.html" para intentar subir el nuevo y hay dos errores, al subir el archivo y al pedirle la lista de archivos al servidor.
Espero que alguien me de la sulución, gracias !
________
EditoMe autorespondo ya que veo que nadie ha podido responder y después de mucho buscar he encontrado la solución.
El problema estaba en que no debia usar "storbinary" sino "retrbinary".