Security News
CISA Brings KEV Data to GitHub
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
A python library and commandline tool to access and sync data from a ezShare WIFI SD Card.
pip install ezshare
The commandline is really dead simple. It allows to list the card contents (-l, --list) and download (-d, --download) files off the card. -r, --recursive makes 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 -t option. 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 download
If the file exists but differs in size - assume a broken download and download it again
If the file exists and the size is the same as the remote - assume it's been already downloaded and skip it
There are also two weird, but most useful options:
See --help
for 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 details
In a single directory
$ ezshare-cli -l /
Listing remote directory: /
DCIM/
or recursively
Listing remote directory: /
DCIM/
101CANON/
IMG_0356.JPG
IMG_0357.JPG
ezshare-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]
Synchronizing remote /DCIM/101CANON/IMG_0356.JPG -> /tmp/
/tmp/IMG_0356.JPG: 100%|███████████████| 4.45M/4.45M [00:02<00:00, 1.68MB/s]
$ 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]
$ 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 $
Now 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
...
There'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: TODO
Check 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:
v0.0.11 - bugfix release
v0.0.10 - initial release.
FAQs
A simple library and commandline tool to access EzShare WiFi SD Cards
We found that ezshare demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.