Package: ezshare
What is it?A python library and commandline tool to access and sync data from a ezShare WIFI SD Card.How to install?pip install ezshareHow to use the commandline?The commandline is really dead simple. It allows to list the card contents (-l,--list) and download (-d,--download) files
off the card.-r,--recursivemakes these operations recursive.The source can be either a file or a directory (specified with -d). The target directory is the current working directory,
unless specified otherwise with-toption. The target can be either a file for single-file downloads, or a dir (ending with /)When downloading directories recursively the behavior is as follows:If the file doesn't exist on the local machine - create it and downloadIf the file exists but differs in size - assume a broken download and download it againIf the file exists and the size is the same as the remote - assume it's been already downloaded and skip itThere are also two weird, but most useful options:-w,--wait- Ping the card until it's detected.--live- Live mode.See--helpfor up-to-date options. Typical usage examples are below.~# ezshare-cli [-h] [-l LIST] [-d DOWNLOAD] [-r] [-t TARGET] [-w] [--live LIVE]

Unofficial ezShare cli tool

optional arguments:
  -h, --help            show this help message and exit
  -l LIST, --list LIST  List remote directory
  -d DOWNLOAD, --download DOWNLOAD
                        Download a remote file or directory
  -r, --recursive       Recurse to subdirs on list/download
  -t TARGET, --target TARGET
                        Specify target directory for downloads
  -w, --wait            Wait for WiFi SD to appear on the network
  --live LIVE           Live mode. Don't exit after syncronisation.The argument specifies cooldown in seconds
                        between sync. See docs for detailsList card contentsIn a single directory$ ezshare-cli -l /
Listing remote directory: /
 DCIM/or recursivelyListing remote directory: /
 DCIM/
  101CANON/
   IMG_0356.JPG
   IMG_0357.JPGDownload a single file to current directoryezshare-cli -d /DCIM/101CANON/IMG_0356.JPG 
Synchronizing remote /DCIM/101CANON/IMG_0356.JPG -> .
./IMG_0356.JPG: 100%|██████████████████| 4.45M/4.45M [00:02<00:00, 1.71MB/s]Download a single file to a custom destinationSynchronizing remote /DCIM/101CANON/IMG_0356.JPG -> /tmp/
/tmp/IMG_0356.JPG: 100%|███████████████| 4.45M/4.45M [00:02<00:00, 1.68MB/s]Recursively download a directory$ ezshare-cli -r -d / -t /tmp/SD_CONTENTS/
Synchronizing remote / -> /tmp/SD_CONTENTS/
/tmp/SD_CONTENTS/DCIM/101CANON/IMG_0356.JPG: 100%|███████████████| 4.45M/4.45M [00:05<00:00, 862kB/s]
/tmp/SD_CONTENTS/DCIM/101CANON/IMG_0357.JPG: 100%|███████████████| 2.86M/2.86M [00:02<00:00, 1.04MB/s]Wait for the card connection and synchronize contents when the card is available$ ezshare-cli -w -r -d / -t /tmp/SD_CONTENTS/
Waiting for ezShare card...ONLINE!
Synchronizing remote / -> /tmp/SD_CONTENTS/
/tmp/SD_CONTENTS/DCIM/101CANON/IMG_0356.JPG: 100%|███████████████| 4.45M/4.45M [00:05<00:00, 862kB/s]
/tmp/SD_CONTENTS/DCIM/101CANON/IMG_0357.JPG: 100%|███████████████| 2.86M/2.86M [00:02<00:00, 1.04MB/s]
0 ✓ necromant @ silverblade /tmp $Continuous sync modeNow this should be the most useful. In this mode the app pings the card until it's available, syncs the directories as specified, and sleeps for a timeout of seconds that is specified after the live option. You can specify the target directory in your nextcloud/dropbox/whatever directory and all
the photos will automagically sync to the cloud as soon as you connect your card.$ ezshare-cli -w -r -d / -t /tmp/SD_CONTENTS/ --live 10
Waiting for ezShare card.ONLINE!
Synchronizing remote / -> /tmp/SD_CONTENTS/
/tmp/SD_CONTENTS/DCIM/101CANON/IMG_0356.JPG: 100%|████████████████| 4.45M/4.45M [00:05<00:00, 904kB/s]
/tmp/SD_CONTENTS/DCIM/101CANON/IMG_0357.JPG: 100%|████████████████| 2.86M/2.86M [00:02<00:00, 1.08MB/s]
Live mode. Next sync in 10 seconds
Waiting for ezShare card.ONLINE!
Synchronizing remote / -> /tmp/SD_CONTENTS/
Skipping file /tmp/SD_CONTENTS/DCIM/101CANON/IMG_0356.JPG (same size)
Skipping file /tmp/SD_CONTENTS/DCIM/101CANON/IMG_0357.JPG (same size)
Live mode. Next sync in 10 seconds
...LimitationsThere's no way to actually remove or upload files to the card. This is the hardware limitation;There's no way to make the card work in client mode or change the IP address. But you can work this around with an OpenWRT router.
Check out my blog for a neat trick: TODOExtraCheck out the docker-compose.yml and Dockerfile for an automated webdav uploader that I'm running.
It's not yet up at dockerhub, but I plan to fix it soon.The idea is simple:Mount webdav via fuse inside the docker container,Run the 'live' mode of ezshare,Get all the photos delivered into your cloud file storage....PROFIT!Changelogv0.0.11 - bugfix releaseFixed handling empty dirs (#1). Thanks to @gustou.Implement retry logic on buggy cards. Thanks to @dieuv0.0.10 - initial release.