Upload partiel avec storbinary en python
Question
J'ai écrit un code python pour télécharger une image en utilisant
urllib.urlopen().read()
et puis le télécharger sur un site FTP en utilisant
ftplib.FTP().storbinary()
mais je vais avoir un problème. Parfois, le fichier image est partiellement téléchargée, si je reçois des images avec les 20% ou coupé en bas au large. J'ai vérifié la version téléchargée localement et j'ai téléchargé avec succès l'ensemble de l'image, ce qui me porte à croire qu'il ya un problème avec storbinary. Je crois que je suis ouverture et la fermeture de tous les fichiers correctement. Quelqu'un at-il des indices quant à la raison pour laquelle je reçois un téléchargement partiel avec storbinary?
Mise à jour: Quand je lance à travers les commandes dans le shell Python, le téléchargement se termine avec succès, je ne sais pas pourquoi ce serait différent de quand exécuter comme un script ...
La solution 2
Il a été un moment que je regardais ce code, mais je me rappelle l'essentiel de c'était que je ne ferme pas correctement le fichier téléchargé. J'ai le code de travail, donc au cas où il avait un problème avec le téléchargement et non le téléchargement, voici deux extraits:
Voici le code de travail pour télécharger l'image:
socket = urllib.urlopen(TheURL)
FileContents = socket.read()
LocalFilename = LocalDir + FilenameOnly
LocalFile = open(LocalDir + FilenameOnly, 'wb')
LocalFile.write(FileContents)
LocalFile.close()
Où est l'URL TheURL
du fichier que je suis en train de télécharger, est juste la FilenameOnly
partie de nom du chemin, et est la destination LocalDir
locale. Je crois que mon problème était que je n'appelle LocalFile.close()
.
Voici le code de travail pour télécharger l'image:
FTPServer = ftplib.FTP(FTPServer, FTPUsername, FTPPassword)
UploadFile = open(Filename, "rb")
FTPServer.cwd(FTPSubDirectory)
UploadFile.close()
FTPServer.quit()
Le problème aurait pu être aussi que je n'appelle FTPServer.quit()
Si quelqu'un a des questions sur ce code, je vais répondre avec plaisir dans les commentaires; Je me sens vraiment mal que je laissé de Googlers pendre!
Autres conseils
Il se trouve que je ne ferme pas correctement le fichier téléchargé. Nous allons tout faire semblant cela n'a jamais eu lieu.