How to get public link for the uploaded file on google cloud storage in local dev server(Google App engine+JAVA) -
i trying upload image files using gcs client library+java in local google app engine dev server. images uploaded , can see entries created in local datastore under localhost:8888/_ah/admin/datastore
how public key uploaded images can show images in application. example profile pic.
sample copy of code:
string filepath = constants.gcsurl + "/" + bucketname + "/"+ objectname; gcsservice gcsservice = gcsservicefactory .creategcsservice(new retryparams.builder() .initialretrydelaymillis(10).retrymaxattempts(10) .totalretryperiodmillis(15000).build()); gcsfilename filename = new gcsfilename(bucketname, objectname); gcsfileoptions options = new gcsfileoptions.builder() .addusermetadata("cache-control", "max-age=" + (86400 * 365)).mimetype(mimetype) .acl(acl_public_read).build(); gcsoutputchannel writechannel = gcsservice.createorreplace( filename, options); writechannel.write(bytebuffer.wrap(filebytes)); writechannel.close();
you can use images service on local devserver. need blobkey:
blobstoreservice blobstore = blobstoreservicefactory.getblobstoreservice(); blobkey blobkey = blobstore.creategsblobkey("/gs/" + filename.getbucketname() + "/" + filename.getobjectname())); // blobkey can persisted imagesservice imagesservice = imagesservicefactory.getimagesservice(); string url = imagesservice.getservingurl(servingurloptions.builder.withblobkey(image));
resizing works on local devserver appending =sxxxx
, can't native image size - on production, appending =s0
url gets original image, doesn't work locally.
Comments
Post a Comment