dgrant / eyefiserver2

A standalone Eye-Fi server in Python, for Linux
GNU General Public License v3.0
140 stars 40 forks source link

Communication seems to work but no upload #23

Open alfaraser opened 8 years ago

alfaraser commented 8 years ago

Hi,

I'm a newbie in Linux and with this anyway. My Eyefi card ain my camera seems to communicate but it doesn't seem to upload any picture, not in the default directory nor any other.

This is the screenshot from the Server - what am I doing wrong ?

s1:StartSession>/SOAP-ENV:Body/SOAP-ENV:Envelope [11/26/15 09:21AM][do_POST] - Got StartSession request [11/26/15 09:21AM][startSession] - Delegating the XML parsing of startSession postData to EyeFiContentHandler() [11/26/15 09:21AM][startSession] - Extracted elements: {'transfermode': u'16418', 'macaddress': u'00185621140b', 'cnonce': u'c166667ce6dba80a7281b17bd75fe55e', 'transfermodetimestamp': u'1448406154'} [11/26/15 09:21AM][startSession] - Setting Eye-Fi upload key to c686e547e3728c63a8f78729c1592757 [11/26/15 09:21AM][startSession] - Concatenated credential string (pre MD5): 00185621140bc166667ce6dba80a7281b17bd75fe55ec686e547e3728c63a8f78729c1592757 [11/26/15 09:21AM][do_POST] - StartSession response: <?xml version="1.0" encoding="UTF-8"?>SOAP-ENV:Body5d1382e08a89c2a367b2d1095a1df8c93b7674c8e07db92df6c098d9fcd742b2164181448406154false/SOAP-ENV:Body/SOAP-ENV:Envelope 192.168.1.110 - - [26/Nov/2015 09:21:07] "POST /api/soap/eyefilm/v1 HTTP/1.1" 200 - [11/26/15 09:21AM][get_request] - Incoming connection from client 192.168.1.110 [11/26/15 09:21AM][finish_request] - Creating instance of main.EyeFiRequestHandler to service request from ('192.168.1.110', 8578)

dgrant commented 8 years ago

That's it? There's no more log after that?

alfaraser commented 8 years ago

Hi David,

great you are still there, yes that's it.

I can wait for ages but there is nothing more coming.

I thing it hangs somewhere - as I even can not stop the server properly with Ctrl + C

are there any special settings I should do when I configure the wifi card with the windows machine to get the upload key ?

Thanks for all your Help.

Peter

On 30/11/15 20:12, David Grant wrote:

That's it? There's no more log after that?

— Reply to this email directly or view it on GitHub https://github.com/dgrant/eyefiserver2/issues/23#issuecomment-160746255.

mjb9 commented 8 years ago

I am seeing a similar issue. My logs are longer:

[12/08/15 11:07PM][get_request] - Incoming connection from client 192.168.0.2 [12/08/15 11:07PM][get_request] - Incoming connection from client 192.168.0.2 [12/08/15 11:07PM][do_POST] - POST /api/soap/eyefilm/v1 HTTP/1.1 [12/08/15 11:07PM][do_POST] - Headers received in POST request: [12/08/15 11:07PM][do_POST] - content-length: 408 [12/08/15 11:07PM][do_POST] - soapaction: "urn:StartSession" [12/08/15 11:07PM][do_POST] - connection: Keep-Alive [12/08/15 11:07PM][do_POST] - accept: text/xml, application/soap [12/08/15 11:07PM][do_POST] - user-agent: Eye-Fi Card/3.0301 [12/08/15 11:07PM][do_POST] - host: api.eye.fi [12/08/15 11:07PM][do_POST] - Attempting to read 408 bytes of data [12/08/15 11:07PM][do_POST] - Finished reading 408 bytes of data [12/08/15 11:07PM][do_POST] - Got StartSession request [12/08/15 11:07PM][startSession] - Delegating the XML parsing of startSession postData to EyeFiContentHandler() [12/08/15 11:07PM][startSession] - Extracted elements: {'transfermode': u'2', 'macaddress': u'0018562dac65', 'cnonce': u'3b27a6134e49b359ffcd0b631f019242', 'transfermodetimestamp': u'1449623982'} [12/08/15 11:07PM][do_POST] - Got an an exception: [12/08/15 11:07PM][do_POST] - Traceback (most recent call last): File "/usr/local/bin/eyefiserver.py", line 496, in do_POST response = self.startSession(postData) File "/usr/local/bin/eyefiserver.py", line 879, in startSession upload_key = mac_to_uploadkey_map[mac] KeyError: u'0018562dac65'

Traceback (most recent call last): File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/SocketServer.py", line 599, in process_request_thread self.finish_request(request, client_address) File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/SocketServer.py", line 334, in finish_request self.RequestHandlerClass(request, client_address, self) File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/SocketServer.py", line 655, in init self.handle() File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/BaseHTTPServer.py", line 340, in handle self.handle_one_request() File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request method() File "/usr/local/bin/eyefiserver.py", line 496, in do_POST response = self.startSession(postData) File "/usr/local/bin/eyefiserver.py", line 879, in startSession upload_key = mac_to_uploadkey_map[mac] KeyError: u'0018562dac65'

dgrant commented 8 years ago

Can you please post your .conf file?

alfaraser commented 8 years ago

Hi David, I assume you mean the defaultsettings.ini

which is this :

Main configuration

[Global]

The directives in this section affect the overall operation

of the Eye-Fi server

#

ListenPort: Allows you to bind the Eye-Fi server to a specific port.

#

ListenPort=59278

#

ConsoleOutput: Logging can automatically be sent to the console.

Set this to False if you don't want any console output. Console

output is also considered stdout.

# ConsoleOutput=True

#

LogFile: Controls where to write the Eye-Fi logs.

#

LogFile=

#

LogLevel: The level of verbosity in both the logs and the console

output. From most verbose to lease verbose the settings are

DEBUG, INFO, WARNING, ERROR or CRITICAL

# LogLevel=DEBUG

#

DownloadLocation: The directory in which to put the incoming pictures. By

default the pictures are put in a sub directory called "pictures" from

where

the script is originally started.

#

On Windows:

This would set the downloads to a directory called pictures.

DownloadLocation=.\pictures

#

On Unix:

DownloadLocation=/tmp

DownloadLocation=/pictures/

#

ExecuteOnUpload: This parameter is used to define an external program

or script to

execute after a file is uploaded. By nature this command is very

dangerous and should

be used carefully. Enabling this command can serve as a means of

compromising a

system or disclosing information via bugs in external programs or scripts.

#

This parameter executes the specified command on each incoming file

passing in the full

file path as the first argument. There is no default for this command

(nothing is executed

if this parameter is left blank).

#

On Windows:

#

ExecuteOnUpload=C:\Windows\system32\mspaint.exe

[Card]

The directives in this section affect the physical card settings

#

UploadKey: The Eye-Fi upload key. It is in C:\Documents and Settings\

\Application Data\Eye-Fi\Settings.xml. This needs to be set for

the server to function correctly.

# UploadKey=c686e547e3728c63a8f78729c1592757

regards

Thanks for all your help

Peter

On 09/12/15 04:31, David Grant wrote:

Can you please post your .conf file?

— Reply to this email directly or view it on GitHub https://github.com/dgrant/eyefiserver2/issues/23#issuecomment-163106506.

mjb9 commented 8 years ago

Here is my eyefiserver.conf file from my QNAP TS-251 server. This worked fine on my TS-221 running QTS 4.2, but I've not gotten it to transfer files on my TS-251 (which is probably running a different build of 4.2). I don't have access to the old TS-221 anymore so I can't compare with it. I put single quotes in front of the comments below as github kept interpreting the hashes as formatting characters. The real file does not have the comments starting with a single quote.

The version of Optware I am using is 0.99.163 from http://download.qnap.com/QPKG/Optware_0.99.163.zip

I couldn't find a version on github.

eyefiserver.conf:

[EyeFiServer]

'# host name and port to listen on
'# you can leave hostname empty for localhost

host_name:
host_port:59278

'# To use this script you need to have your Eye-Fi upload key.
'# You can find it after configuring the card, 
'# which you can currently on do on windows or mac
'# It is inside C:\Documents and Settings\<User>\Application Data\Eye-Fi\Settings.xml on windows xp,
'# C:\Users\<User>\AppData\Roaming\Eye-Fi\Settings.xml on windows vista, 7 (& 10?)
'# or ~/Applications Data/Eye-Fi/Settings.xml on mac
'# search for it and paste it here:

mac_0:001856032c6b
upload_key_0:5bddb403289fdadf396f32b8a0276fd8

mac_1:0018562d572c
upload_key_1:31c0f3dd48d91dad78641324b6ce4587

mac_2:0018562dac65
upload_key_2:4d5b88981be644d138d005fb3a3414ad

mac_3:001856678943
upload_key_3:d9bbc9234b056f90df007facd6cf6b59

mac_4:0018566a52f0
upload_key_4:c2ff47fbafd65507e1774fdf4cf156bb

'# Create XMP file with geolocation information based on access points
'# detected by Eye-Fi card for any uploaded JPEG or RAW file
geotag_enable:0

'# Use access points detected within this period of time
'# before or after photo was taken, in seconds
geotag_lag:0

'# Use acquired geolocation data with accuracy over this value, in meters
geotag_accuracy:0

'# When connecting, all files are downloaded in one directory
'# the name of the directory can be a strftime formatted string like 
'# /home/myblog/pictures/%%Y-%%m-%%d
'# notice the double percent sign to escape % from ini interpolation

upload_dir:/share/Public/Backups/Picture Temp/Eye-Fi/%%m-%%d-%%Y

'# The UID of the user that you want to own the uploaded images
upload_uid:0
'# The GID of the group that you want to own the uploaded images
upload_gid:100
'# The permissions to use for the uploaded images
upload_file_mode:511
'# The permissions to use for the directories that are created
upload_dir_mode:511
dgrant commented 8 years ago

mjb9, on line 879, where it says: upload_key = mac_to_uploadkey_map[mac], right before that can you add a line that says "print "mac_to_uploadkey_map: ", mac_to_uploadkey_map" so it looks like:

print "mac_to_uploadkey_map: ", mac_to_uploadkey_map
upload_key = mac_to_uploadkey_map[mac]
mjb9 commented 8 years ago

Here are the logs. Seems to not like the "print "mac_to_uploadkey_map: ", mac_to_uploadkey_map" line now.

BTW, the GUI sometimes stops working (even with "WebUI = QTS_desktop" in the qpkg.conf file.) The GUI behavior is intermittent, but I only used it to look at the logs. But I noticed that the log is stored in /var/log/eyefiserver.log

[12/09/15 11:03PM][get_request] - Incoming connection from client 192.168.0.2 [12/09/15 11:03PM][do_POST] - POST /api/soap/eyefilm/v1 HTTP/1.1 [12/09/15 11:03PM][do_POST] - Headers received in POST request: [12/09/15 11:03PM][do_POST] - content-length: 408 [12/09/15 11:03PM][do_POST] - soapaction: "urn:StartSession" [12/09/15 11:03PM][do_POST] - connection: Keep-Alive [12/09/15 11:03PM][do_POST] - accept: text/xml, application/soap [12/09/15 11:03PM][do_POST] - user-agent: Eye-Fi Card/3.0301 [12/09/15 11:03PM][do_POST] - host: api.eye.fi [12/09/15 11:03PM][do_POST] - Attempting to read 408 bytes of data [12/09/15 11:03PM][do_POST] - Finished reading 408 bytes of data [12/09/15 11:03PM][do_POST] - Got StartSession request [12/09/15 11:03PM][startSession] - Delegating the XML parsing of startSession postData to EyeFiContentHandler() [12/09/15 11:03PM][startSession] - Extracted elements: {'transfermode': u'2', 'macaddress': u'0018562dac65', 'cnonce': u'416ab52f629ec54b1fadba1620e6127e', 'transfermodetimestamp': u'1449623982'} [12/09/15 11:03PM][do_POST] - Got an an exception: [12/09/15 11:03PM][do_POST] - Traceback (most recent call last): File "/usr/local/bin/eyefiserver.py", line 496, in do_POST response = self.startSession(postData) File "/usr/local/bin/eyefiserver.py", line 879, in startSession print "mac_to_uploadkey_map: ", mac_to_uploadkey_map KeyError: u'0018562dac65'

Traceback (most recent call last): File "/opt/lib/python2.5/SocketServer.py", line 464, in process_request_thread self.finish_request(request, client_address) File "/opt/lib/python2.5/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/opt/lib/python2.5/SocketServer.py", line 522, in init self.handle() File "/opt/lib/python2.5/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/opt/lib/python2.5/BaseHTTPServer.py", line 310, in handle_one_request method() File "/usr/local/bin/eyefiserver.py", line 496, in do_POST response = self.startSession(postData) File "/usr/local/bin/eyefiserver.py", line 879, in startSession print "mac_to_uploadkey_map: ", mac_to_uploadkey_map KeyError: u'0018562dac65' [12/09/15 11:03PM][get_request] - Incoming connection from client 192.168.0.2 [12/09/15 11:03PM][get_request] - Incoming connection from client 192.168.0.2 [12/09/15 11:04PM][get_request] - Incoming connection from client 192.168.0.2 [12/09/15 11:04PM][get_request] - Incoming connection from client 192.168.0.2 [12/09/15 11:04PM][do_POST] - POST /api/soap/eyefilm/v1 HTTP/1.1 [12/09/15 11:04PM][do_POST] - Headers received in POST request: [12/09/15 11:04PM][do_POST] - content-length: 408 [12/09/15 11:04PM][do_POST] - soapaction: "urn:StartSession" [12/09/15 11:04PM][do_POST] - connection: Keep-Alive [12/09/15 11:04PM][do_POST] - accept: text/xml, application/soap [12/09/15 11:04PM][do_POST] - user-agent: Eye-Fi Card/3.0301 [12/09/15 11:04PM][do_POST] - host: api.eye.fi [12/09/15 11:04PM][do_POST] - Attempting to read 408 bytes of data [12/09/15 11:04PM][do_POST] - Finished reading 408 bytes of data [12/09/15 11:04PM][do_POST] - Got StartSession request [12/09/15 11:04PM][startSession] - Delegating the XML parsing of startSession postData to EyeFiContentHandler() [12/09/15 11:04PM][startSession] - Extracted elements: {'transfermode': u'2', 'macaddress': u'0018562dac65', 'cnonce': u'693b0655d2eed16f0502b037f5b5aa6e', 'transfermodetimestamp': u'1449623982'} [12/09/15 11:04PM][do_POST] - Got an an exception: [12/09/15 11:04PM][do_POST] - Traceback (most recent call last): File "/usr/local/bin/eyefiserver.py", line 496, in do_POST response = self.startSession(postData) File "/usr/local/bin/eyefiserver.py", line 879, in startSession print "mac_to_uploadkey_map: ", mac_to_uploadkey_map KeyError: u'0018562dac65'

Traceback (most recent call last): File "/opt/lib/python2.5/SocketServer.py", line 464, in process_request_thread self.finish_request(request, client_address) File "/opt/lib/python2.5/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/opt/lib/python2.5/SocketServer.py", line 522, in init self.handle() File "/opt/lib/python2.5/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/opt/lib/python2.5/BaseHTTPServer.py", line 310, in handle_one_request method() File "/usr/local/bin/eyefiserver.py", line 496, in do_POST response = self.startSession(postData) File "/usr/local/bin/eyefiserver.py", line 879, in startSession print "mac_to_uploadkey_map: ", mac_to_uploadkey_map KeyError: u'0018562dac65'

mjb9 commented 8 years ago

For some reason, and I don't have a clue as I changed nothing and the QNAP has not been restarted, it seems to be uploading. The GUI does not work, but I can live with that.

I've also done some experiments running Eye-Fi's server inside a Win 7 VM instance using QNAP's Virtualization Station on a TS-251 with 8GB of RAM. It works as well as the Eye-Fi's server running directly on a PC, although it's a bit inefficient with the QNAP's resources.

Tomatenguru commented 6 years ago

Hi,

I've the same Issue... Is there any further process here? I'm trying to modify my raspberry to catch the pictures from the mobi pro.

I added the

print "mac_to_uploadkey_map: ", mac_to_uploadkey_map

above the

upload_key = mac_to_uploadkey_map[mac]

in the py file.

The logs are:

[01/09/18 08:02PM][get_request] - Incoming connection from client 192.168.178.44 [01/09/18 08:03PM][get_request] - Incoming connection from client 192.168.178.44 [01/09/18 08:03PM][do_POST] - POST /api/soap/eyefilm/v1 HTTP/1.1 [01/09/18 08:03PM][do_POST] - Headers received in POST request: [01/09/18 08:03PM][do_POST] - content-length: 439 [01/09/18 08:03PM][do_POST] - soapaction: "urn:StartSession" [01/09/18 08:03PM][do_POST] - connection: Keep-Alive [01/09/18 08:03PM][do_POST] - accept: text/xml, application/soap [01/09/18 08:03PM][do_POST] - user-agent: Eye-Fi Card/5.3006 [01/09/18 08:03PM][do_POST] - host: mobi.api.eyefi.com [01/09/18 08:03PM][do_POST] - Attempting to read 439 bytes of data [01/09/18 08:03PM][do_POST] - Finished reading 439 bytes of data [01/09/18 08:03PM][do_POST] - Got StartSession request [01/09/18 08:03PM][startSession] - Delegating the XML parsing of startSession postData to EyeFiContentHandler() [01/09/18 08:03PM][startSession] - Extracted elements: {'transfermode': u'546', 'macaddress': u'0018566ebe5e', 'cnonce': u'aed9824924e669732dc5941c093f6c0b', 'transfermodetimestamp': u'0'} [01/09/18 08:03PM][do_POST] - Got an an exception: [01/09/18 08:03PM][do_POST] - Traceback (most recent call last): File "/usr/local/bin/eyefiserver.py", line 501, in do_POST response = self.startSession(postData) File "/usr/local/bin/eyefiserver.py", line 885, in startSession upload_key = mac_to_uploadkey_map[mac] KeyError: u'0018566ebe5e'

Traceback (most recent call last): File "/usr/lib/python2.7/SocketServer.py", line 596, in process_request_thread self.finish_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python2.7/SocketServer.py", line 652, in init self.handle() File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle self.handle_one_request() File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request method() File "/usr/local/bin/eyefiserver.py", line 501, in do_POST response = self.startSession(postData) File "/usr/local/bin/eyefiserver.py", line 885, in startSession upload_key = mac_to_uploadkey_map[mac] KeyError: u'0018566ebe5e' [01/09/18 08:03PM][get_request] - Incoming connection from client 192.168.178.44 [01/09/18 08:04PM][stop_server] - Eye-Fi server stopped

Any ideas how to solve / proceed here? If there is any further information required, please let me know.

Many thanks in advance. :-)