通过Python ftplib上传视频时出现损坏

时间:2013-01-14 23:09:25

标签: python video ftplib

我正在尝试使用Python中的 ftplib 库尝试将一些视频FTP到我的网站。我有一个基础“工作”的脚本,但它有一个问题。当我尝试使用VLC播放器播放我的视频时,它似乎已损坏,因为它只播放视频的前15秒(可能直到视频中的某个重要关键帧,但这可能除此之外)然后仅播放音频有时继续。

关于它的奇怪之处在于,如果我在本地目录和远程目录上执行ls -l,则文件大小是相同的(即使Mac本地计算文件大小为75.6 MB而cPanel文件经理将其显示为仅71.2 MB)。要仔细检查,两端的MD5校验和也是一样的。但显然,数据在服务器端并不完全正确。可能的情况是,我可能没有在我的Python脚本中正确打开.mov文件,因为我花了一些时间来绕过文件和文件类对象(这意味着我可能还是错了)。

这是我目前的上传脚本:

#!/usr/bin/env python

import os
from ftplib import FTP

# Log in to the FTP server
ftp = FTP('campusweatherservice.com')
ftp.login('myusername', 'mypassword')

# Change directories to the intended video source
os.chdir('/Users/cws/Desktop/CNET')

f = file('cnet.mov', 'rb')         # Currently opening the file as a file object
ftp.storbinary('STOR CNET.mov', f) # We then try to store it this way

# Close our file object and then quit the FTP client
f.close()
ftp.quit()

我这里有任何想法或明显错误吗?如果您想亲自试用视频文件,请点击http://www.campusweatherservice.com/CNET/CNET.mov

1 个答案:

答案 0 :(得分:1)

所以希望你能从原始问题的评论中看到这个问题是测试的问题,而不是代码。

这里吸取的教训:

  1. 如果您的校验和匹配,请确保您的文件实际上不相同。这比一些奇怪的边缘情况(我原来认为的那样)的可能性要高出1000倍。
  2. 如果您在Stack Overflow帖子中提供了可操作的项目(例如“下载我的视频以便亲自查看”),您应该自己测试一下。
  3. 所以我想这个问题现在至少是好的a)用于通过FTP使用Python上传文件的参考和b)关于在Stack Overflow上提问的好教训!