通过Python ftplib上传时,视频似乎已损坏

通过Python ftplib上传时,视频似乎已损坏,python,video,ftplib,Python,Video,Ftplib,我正在尝试使用Python中的ftplib库尝试将一些视频FTP到我的网站。我有一个基本的“工作”脚本,但有一个问题。当我尝试使用VLC播放器播放我的视频时,它似乎已损坏,因为它只播放视频的前15秒(可能直到视频中的某个重要关键帧,但这可能是除了点之外),然后音频有时才继续 奇怪的是,如果我在本地目录和远程目录上执行ls-l,文件大小是相同的(即使Mac本地计算文件大小为75.6MB,而cPanel文件管理器仅显示为71.2MB)。为了进行双重检查,两端的MD5校验和也是相同的。但显然,服务器端

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


奇怪的是,如果我在本地目录和远程目录上执行
ls-l
,文件大小是相同的(即使Mac本地计算文件大小为75.6MB,而cPanel文件管理器仅显示为71.2MB)。为了进行双重检查,两端的MD5校验和也是相同的。但显然,服务器端的数据并不完全正确。很有可能,我在Python脚本中可能没有正确打开.mov文件,因为我花了一点时间才了解文件和类似文件的对象(这意味着我可能仍然有错误)

这是我当前的上载脚本:

#/usr/bin/env python
导入操作系统
从ftplib导入FTP
#登录到FTP服务器
ftp=ftp('campusweatherservice.com')
ftp.login('myusername','mypassword')
#将目录更改为所需的视频源
chdir(“/Users/cws/Desktop/CNET”)
f=file('cnet.mov','rb')#当前正在以文件对象的形式打开该文件
ftp.storbinary('STOR CNET.mov',f)#然后我们尝试以这种方式存储它
#关闭文件对象,然后退出FTP客户端
f、 关闭()
ftp.quit()

我这边有什么想法或明显的错误吗?如果您想自己尝试视频文件,它位于

,因此希望您可以从原始问题的评论中看到,这个问题是测试问题,而不是代码问题

在此吸取的经验教训:

  • 如果您的校验和匹配,请确保您的文件实际上不完全相同。这比一些奇怪的边缘案件更可能是1000倍(正如我最初估计的那样)
  • 如果您在堆栈溢出帖子中提供了一个可操作的项目(比如“下载我的视频自己看”),您可能应该自己测试一下

  • 所以我想这个问题现在至少可以作为a)使用Python通过FTP上传文件的参考,b)关于堆栈溢出问题的好教训

    “两端的MD5校验和也是一样的”--然后是相同的数据(或者你很幸运地发现了MD5冲突:)。你试过用同一个播放器播放原始文件吗?原始文件确实有效。不幸的是,我的测试中有一部分我没有考虑:下载文件(上传到FTP站点)并在VLC中本地播放(甚至还有QuickTime)。这两种方法都很有效。所以我想这只是流式传输文件的问题(在软件中或是因为我的网络主机)。哎呀!