This is a simple REST API server that accept an input image and give you URLs of matching images from the S3 bucket by calling Rekognition CompareFaces.
Steps for getting up and running,
-
Create a
.env
file in the project root directory and setup required environment variablesAWS_REGION="us-east-1" AWS_ACCESS_KEY_ID="Your AWS Access Key ID" AWS_SECRET_ACCESS_KEY="Your AWS Access Key Secret" AWS_S3_BUCKET_KEY="Your Bucket Name"
-
Build the docker image
docker-compose build
-
Start the docker container
docker-compose up
-
Using Postman or any other REST API tool make a POST request to the following endpoint
POST http://localhost:8080/v1/compareFaces Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWfPNVh4wuWBlyEyQ ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ Content-Disposition: form-data; name="folder_path" /some/folder/path ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ Content-Disposition: form-data; name="file"; filename="image.png" Content-Type: image/png [file content goes there] ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
If
folder_path
is provided it will be used as a prefix for ListObjectsInput.SetPrefix -
Sample success response
{ "result": [ "https://test-bucket.s3.amazonaws.com/folder/IMG_1.jpg", "https://test-bucket.s3.amazonaws.com/folder/IMG_2.jpg" ] }
Currently it scans maximum of
100
Objects. Only the images that hasSimilarity >= 90
will be included in the result.
MIT