2016-11-30 128 views
1

我有一個Raspberry Pi相機,我想用它來捕獲圖像並將它們直接存儲到FTP服務器。我想繞過將圖像存儲在SD卡上的原因,因爲相機將用於遠程環境,而且幾乎沒有維護,因此我想通過直接寫入我的FTP來避免潛在的SD卡故障。將PiCamera圖像直接上傳到FTP服務器的問題

我有以下腳本:

import ftplib 
import time 
import picamera 

with picamera.PiCamera() as camera: 
camera.start_preview() 
time.sleep(2) 
for filename in camera.capture_continuous('img{counter:03d}.jpg'): 
    print('Captured %s' % filename) 

    server = 'server.address' 
    username = 'user' 
    password = 'pass' 
    ftp_connection = ftplib.FTP(server, username, password) 
    remote_path = "/Cam/" 
    ftp_connection.cwd(remote_path) 
    fh = open("/home/pi" + filename, 'rb') 
    ftp_connection.storbinary('STOR ', fh) 
    fh.close() 
    time.sleep(60) # wait 1 minute 

相反的圖像上傳到FTP的,我的劇本是影像保存到主目錄。事實上,它每秒鐘都在保存圖像。

我該如何解決這個問題?

+0

如果不是所有的FTP代碼'for'循環下縮進? –

+0

'/ home/pi'之後是不是缺少一個斜線? - 或者你甚至需要那裏的路徑?你不能只使用'filename'嗎? –

回答

2

你不指定輸出文件名

替換:

ftp_connection.storbinary('STOR ', fh) 

有了:

ftp_connection.storbinary('STOR ' + filename, fh)