Je moet tussendoor ook nog 3 environmentvariabelen zetten. De correcte waardes zijn persoonlijk en kun je op http://api.mapillary.com/v1/u/uploadhashes vinden.
In windows kun je daarvoor een batch file maken die er ongeveer zo uitziet;
@echo off
cd /d %~dp0
echo type de directory met de te uploaden bestanden, bijvoorbeeld: E:\DCIM\100_VIRB\
set /p input=
C:\Python27\Scripts\pip install exifread
set MAPILLARY_PERMISSION_HASH=helelangetekstmetcijfersenletters
set MAPILLARY_SIGNATURE_HASH=korteretekst
set MAPILLARY_USERNAME=username
C:\Python27\python upload_with_authentication.py %input%
pause
Als je die opslaat als upload.cmd in dezelfde directory waar upload.py en upload_with_authentication.py staat, moet je dit volgens mij kunnen starten door een dubbelklik op upload.cmd. (maar niet getest).
Traceback (most recent call last):
File "upload_with_authentication.py", line 138, in <module>
if verify_exif(filepath):
File "upload_with_authentication.py", line 62, in verify_exif
with open(filename, 'rb') as f:
IOError: [Errno 22] invalid mode ('rb') or filename: '*.JPG'
Je moet dus alleen het upload pad ingeven dus zonder *.jpg
python upload_with_authentication.py upload_dir
Dan gaat het goed, althans met een klein testje.
Zal eens tzt met wat meer bestanden proberen.
Werkt het bij jullie nog steeds, of lopen jullie hier sinds gisteravond/vanochtend ook tegenaan? Al was de melding gisteravond iets anders, maar kwam op hetzelfde neer (beide Windows 7).
Als ik de upload URL (https://mapillary.uploads.manual.images.s3-eu-west-1.amazonaws.com) in een browser intik krijg ik dezelfde error in alle browsers (IE, FF, Chrome).
Ik kreeg andere foutmeldingen, bij mij werkt het ook niet meer. Het testje dat gelukt leek blijkt online ook al niet toegankelijk te zijn dus echt lekker werken die scripts niet.
Uploading sequence ad2d5dd7-e14d-480e-a659-161fc290845c.
Uploading: VIRB0521.JPG
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Program Files\Python\lib\threading.py", line 810, in __bootstrap_inner
self.run()
File "V:\OSM\Mapillary\upload.py", line 177, in run
upload_file(filepath, **self.params)
File "V:\OSM\Mapillary\upload.py", line 115, in upload_file
response = urllib2.urlopen(request)
File "C:\Program Files\Python\lib\urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "C:\Program Files\Python\lib\urllib2.py", line 431, in open
response = self._open(req, data)
File "C:\Program Files\Python\lib\urllib2.py", line 449, in _open
'_open', req)
File "C:\Program Files\Python\lib\urllib2.py", line 409, in _call_chain
result = func(*args)
File "C:\Program Files\Python\lib\urllib2.py", line 1240, in https_open
context=self._context)
File "C:\Program Files\Python\lib\urllib2.py", line 1194, in do_open
h.request(req.get_method(), req.get_selector(), req.data, headers)
File "C:\Program Files\Python\lib\httplib.py", line 1001, in request
self._send_request(method, url, body, headers)
File "C:\Program Files\Python\lib\httplib.py", line 1035, in _send_request
self.endheaders(body)
File "C:\Program Files\Python\lib\httplib.py", line 997, in endheaders
self._send_output(message_body)
File "C:\Program Files\Python\lib\httplib.py", line 850, in _send_output
self.send(msg)
File "C:\Program Files\Python\lib\httplib.py", line 812, in send
self.connect()
File "C:\Program Files\Python\lib\httplib.py", line 1216, in connect
server_hostname=server_hostname)
File "C:\Program Files\Python\lib\ssl.py", line 350, in wrap_socket
_context=self)
File "C:\Program Files\Python\lib\ssl.py", line 566, in __init__
self.do_handshake()
File "C:\Program Files\Python\lib\ssl.py", line 796, in do_handshake
match_hostname(self.getpeercert(), self.server_hostname)
File "C:\Program Files\Python\lib\ssl.py", line 269, in match_hostname
% (hostname, ', '.join(map(repr, dnsnames))))
CertificateError: hostname 'mapillary.uploads.manual.images.s3-eu-west-1.amazonaws.com' doesn't match either of 's3-eu-w
est-1.amazonaws.com', '*.s3-eu-west-1.amazonaws.com'
Ook werd een vergelijkbaar probleem gemeld op https://github.com/mapillary/mapillary_issues/issues/512
Heb daar in de comments bij vermeld dat het niet enkel voor upload.py mis gaat, maar ook voor upload_with_authentication.py.
Workaround schijnt te zijn om te downgraden naar Python 2.7.8, dus dat probeer ik morgen maar eens.
Het probleem is echter dat mijn installerscript niet volledig was waardoor de taalbestanden niet meegenomen werden. Even opnieuw downloaden (versienummer is niet gewijzigd) en installeren.
Ik heb gisteren weer een flinke serie foto’s gemaakt. Die wilde ik uploaden via de manual upload maar die werkt niet (Na drukken op UPLOAD gebeurt er niets meer). Toen ben ik maar eens gedoken in het uploaden met de Python scripts. Ik heb daar niet veel verstand van maar ik denk dat ik nu een heel eind ben. Als ik de upload.cmd van Wimmel draai dan gebeurt er wel e.e.a. maar er is een foutmelding bij alle foto’s. “Missing required EXIF tag: GPS GPSLongitude” . Ik begrijp deze melding wel maar alle foto’s bevatte toch echt alle benodigde GPS data. Ze worden bv prima herkend door Garmins Basecamp. Iemand enig idee wat ik fout doe?
Als ik het goed begrepen heb is dat gelukt. Dat installeren zit zelfs in upload.cmd.
Na dubbelklikken op de upload.cmd verschijnt deze tekst:
requirement already satified <use --upgrade to upgrade>: exifread in c:\python27\lib\site-packages
(En daarna per foto de foutmelding over de GPSLongitude)
Ik leg dit uit dat het installeren al gebeurd is en dus niet per keer op de .cmd dubbelklikken nodig is (maar kwaad kan het ook niet).
In die map site-packages staat ook een EXIFREAD mapje dus neem ik aan dat het installeren gelukt is. Ik vermoed dat die exifread nu ook degene is die gaat piepen.
Je zou het eens kunnen proberen met een directory waarin je maar 1 foto zet (en je dus zeker weet dat die goed is). Als de upload dan wel werkt kun je op het einde “N” antwoorden zodat die niet gebruikt wordt.
edit: Ik zie nu ook dat het script een enkele file kan uploaden door de complete bestandsnaam op te geven, zolang het bestand maar eindigd in “.jpg”. Dit betekent overigens ook dat het script niet werkt als de naam van de directory eindigd op “.jpg”.