Skip to content

Kotlin Spring Web app to upload objects to GCP Cloud Storage. Uses GCP Vision API for object detection.

Notifications You must be signed in to change notification settings

sshehrozali/cloudclip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What's this?

Photo-2-Bucket is a Google Cloud platform powered service that makes uploading and retrieving photos for your apps a hassle-free approach. It comes with Google Cloud platform AI powered technology Cloud Vision API to perform Machine Learning based Image scanning for quick Object Detection and Fetching Image attributes to meet your any kind of Business purpose. Try it now!

Features:

The application is packed with following features:

  • Storage Bucket GCP Storage Bucket is a Google Cloud service that lets your dispose your Objects or BLOBs (Binary Large Storage Objects) such as Documents/CSVs/Images/etc. for any kinds of needs. The application uses GCP Storage Bucket technology to save your photos in Bucket specified by UUID generated filename.

  • Cloud Vision API Cloud Vision API is Google Cloud's AI service powered by Machine Learning backed computations to perform different types of Machine Learning and Object Detections approaches to your applications. The application supports Vision API integration to perform a quick scan over your image and get some image attributes based on accuracy.

  • Datastore/Firestore This is a Google Cloud powered NoSQL Database for storing your documents under collections. The application uses Datastore to dump your Image details based on id, uri and attributes to Database for storing as records.

How it works?

The application uses RESTful architecture to upload or retrieve Photo from Cloud.

  • Uploading a Photo: Make a POST request to HOST:8080/api/upload with Image/Photo as File attached with Content-Type: multipart/form; boundary=WebAppBoundary and Content-Disposition (check out RESTClient.http to understand more about the request type). It will upload or save your Photo to Storage Bucket.

  • Retrieving a Photo: Make a GET request to HOST:8080/api/image/{id} to retrieve a specific photo from Storage Bucket. The id passed in URI request parameter is the id of the photo you want to retrieve from Storage Bucket. The response returned is the Photo (retrieved by id) with a status code of 200 OK.

Workflow:

Deployment:

The application supports two types of Deployment:

  • App Engine (PaaS): GAE is a Platform-as-a-Service offered by Google Cloud. The instance configuration can be declared explicitly in app.yaml file under root folder which you can provide in argument when pushing your build to App Engine via gCloud shell. It automatically spins up the instance according to specified instance type declared and runtime environment. It also supports A/B versioning split testing by configuring Load Balancer for splitting the traffic to your A and B services.

  • Cloud Run (Serverless): Cloud Run is a fully-managed Server-less deployment option offered by Google Cloud if you want to speed up your deployment without any IaC. It also supports CI/CD deployment pipeline via Cloud Build by connecting to your Source Repository which triggers on every Push and build the deployable file according to language or also in a Docker container.

About

Kotlin Spring Web app to upload objects to GCP Cloud Storage. Uses GCP Vision API for object detection.

Topics

Resources

Stars

Watchers

Forks

Languages