2017-01-12 3 views
1

Ich habe versucht, Videodatei mit Python hochzuladen, das Problem ist, das System kann die Datei nicht finden, obwohl ich den Pfad der Datei schreibe. mein Code wie folgt aus:Hochladen von Videodatei nach Pfad auf Python funktioniert nicht

import os 
import requests 

#step 1 
host = 'https://blablabla.com' 

test = { 
    "upload_phase" : "start", 
    "file_size" : 1063565 
} 

params = { 
    "access_token":my_access_token, 
    "fields":"video_id, start_offset, end_offset, upload_session_id", 
} 

vids = requests.post(host, params=params, data=test) 
vids = vids.json() 

try: 
    video_id= vids["video_id"], 
    start_offset= vids["start_offset"], 
    end_offset= vids["end_offset"], 
    upload_session_id= vids["upload_session_id"] 
except: 
    pass 

print(vids) 

############################################################################### 
#step 2 
############################################################################### 
test = { 
    "upload_phase" : "transfer", 
    "start_offset" : start_offset, 
    "upload_session_id": upload_session_id, 
    "video_file_chunk": os.path.realpath('/home/def/Videos/test.mp4') 
} 

params = { 
    "access_token":my_access_token, 
    "fields":"start_offset, end_offset", 
} 

vids = requests.post(host, params=params, data=test) 
vids = vids.json() 

try: 
    start_offset= vids["start_offset"], 
    end_offset= vids["end_offset"] 
except: 
    pass 

print(vids) 

Viele Art und Weise habe ich versucht, like os.path.abspath, os.path, os.path.dirname, os.path.basename, os.path.isfile, os.path.isabs, os.path.isdir es immer noch nicht funktioniert. sogar gebe ich import os.path or import os.

Antwort

0

In Ihrem Code senden Sie einfach den Pfad zu Ihrer Datei als Zeichenfolge an den Server, aber nicht die Datei selbst. Sie sollten so etwas wie versuchen:

my_file = {'file_to_upload': open(os.path.realpath('/home/def/Videos/test.mp4'),'rb')} 
# You should replace 'file_to_upload' with the name server actually expect to receive 
# If you don't know what server expect to get, check browser's devconsole while uploading file manually 
vids = requests.post(host, params=params, files=my_file) 

Beachten Sie auch, dass Sie requests.Session() verwenden könnte müssen in der Lage sein, Cookies zu handhaben, Zugriffstoken ...

+0

Es funktioniert, vielen Dank Herr @Andersson –

Verwandte Themen