我試圖在Python中使用ftplib庫試圖將一些視頻FTP傳到我的網站。我有一個基本的「工作」的腳本,但它有一個問題。當我嘗試使用VLC播放器播放視頻時,它看起來已經損壞了,因爲它只播放視頻的前15秒(可能直到視頻中的某個重要關鍵幀,但除此之外可能還有),然後是僅音頻有時會繼續。視頻顯示通過Python上傳損壞ftplib
奇怪的是,如果我在本地目錄和遠程目錄上執行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
「兩端的MD5校驗和也是一樣的」 - 然後是相同的數據(或者你很幸運能夠找到MD5碰撞:)。您是否嘗試用同一個播放器播放原始文件? –
原始文件確實有效。不幸的是,我的測試中有一部分我沒有考慮:下載文件(上傳到FTP站點)並在VLC中本地播放(甚至是QuickTime)。這兩個工作都很好。所以我猜這只是流式傳輸文件的問題(無論是在軟件中還是因爲我的網絡主機)。哎呀! – Devin