Skip to content

Checkwell is an MD5 Checksum server that performs asynchronous checksums via a dead-simple REST API.

Notifications You must be signed in to change notification settings

bchah/Checkwell

Repository files navigation

Checkwell

Checkwell is an MD5 Checksum server that performs asynchronous checksums via a dead-simple REST API.

This must be run from a location where NodeJS can see the paths as they are being fed. Path mapping and more fun stuff to come.

All requests require a secret key which you can set to whatever you'd like in the code or as an environment variable SECRET_KEY.

A rudimentary front-end can be accessed via the web browser. Currently there is a query limit of 10,000 on Processing/Queued/Completed jobs.

GET /md5?secret_key=security&target=/uriencoded/path/to/file

skips the database and just returns a plaintext hash response (delay might be quite long for a large file)

POST /jobs/submit

{ secret_key:"security", "target" : "/regular/path/to/file" "data" : {"some":"custom json data you want to store against this job"} }

OR for multiple items at once (there is a "type" parameter which is assumed as md5 if none specified. md5 is all that is supported for now.)

{ secret_key:"security", items: [ {"target":"/path/1"}, {"target":"/path/2", "data":{"some":"data"}} ] }

returns 201 if the job submission is successful
returns 500 if the laws of physics refuse to bend that way

GET /jobs/pending

returns JSON array of any jobs which are registered but have not started processing or completed
if no jobs, returns string saying something to that effect

GET /jobs/complete

returns JSON array of all completed jobs with status of "complete" or "failed"
"result" contains the checksum or is null if the job failed
if you include an optional ?id=12345 parameter it will just return the one job you are looking for
if you include an optional ?path=/uriencoded/path/to/file parameter it will return all jobs for that file
bonus: the path can be a folder and it will return all jobs for files at or beneath that folder
if no completed jobs, returns string saying something to that effect

About

Checkwell is an MD5 Checksum server that performs asynchronous checksums via a dead-simple REST API.

Topics

Resources

Stars

Watchers

Forks