Hello Snahasish,
You are having troubles with which step? download a file stored in GCS or attaching the file through the SendGrid API? Are you using any library to interact with SendGrid (
https://github.com/sendgrid/sendgrid-java)?
I'm doing exactly the same but with another mail provider instead of SendGrid. I'm using jersey with FormDataMultiPart and StreamDataBodyPart classes to send the request with the attachment to the API (with no specific client library, just Jersey)
FormDataMultiPart formData = new FormDataMultiPart();
formData.field("from", emailFrom);
formData.field("subject", subject);
formData.field("html", content);
formData.field("to", email);
StreamDataBodyPart bodyPart = new StreamDataBodyPart("inline", imageInputStream,filename,new MediaType("image","png"));
formData.bodyPart(bodyPart);
Client client = Client.create();
client.addFilter(new HTTPBasicAuthFilter("api", API_KEY));
WebResource webResource = client.resource(API_ENDPOINT + "/messages");
webResource.type(MediaType.MULTIPART_FORM_DATA_TYPE).post(ClientResponse.class, formData);
Let me know if this is what you are looking for.
Cheers.