During image upload, I'm using below method getBlobKey to get BlobKey for image and saving it's detail in database.
private BlobKey getBlobKey(byte[] data, String fileName) {
System.out.println("Inside getBlobKey....");
GcsService gcsService = null;
GcsFilename gcsFilename = null;
String bucket = "nirantGallery";
fileName = fileName + "_" + UUID.randomUUID().toString();
try {
gcsService = GcsServiceFactory.createGcsService();
gcsFilename = new GcsFilename(bucket, fileName);
GcsFileOptions.Builder options_builder = new GcsFileOptions.Builder();
options_builder = options_builder.mimeType("image/jpeg");
GcsFileOptions options = options_builder.build();
GcsOutputChannel output = GcsServiceFactory.createGcsService().createOrReplace(gcsFilename, options);
output.write(ByteBuffer.wrap(data));
output.close();
// Get serving url
String gs_blob_key = "/gs/" + bucket + "/" + fileName;
BlobKey blob_key = BlobstoreServiceFactory.getBlobstoreService().createGsBlobKey(gs_blob_key);
ServingUrlOptions serving_options = ServingUrlOptions.Builder.withBlobKey(blob_key);
String serving_url = ImagesServiceFactory.getImagesService().getServingUrl(serving_options);
System.out.println("Serving URL: " + serving_url);
return blob_key;
} catch (Exception e) {
System.out.println("Inside exception....");
e.printStackTrace();
} finally {
gcsService = null;
}
return null;
}
The problem is when I'm running this in local system, it works and gives me localhost URL like
Serving URL: http://127.0.0.1:8888/_ah/img/encoded_gs_key:L2dzL25pcmFudEdhbGxlcnkvaW1hZ2VfMF9kNjlmOGFjMS05ZTUzLTRiNzUtOTI1ZC1hYzU0ZWQzNzJkNDk
But it is not working when I deploy and run, checked log in server found below details.
Error for /nirat-admin-portal/addGallery
java.lang.NoClassDefFoundError: com/google/api/client/extensions/appengine/http/UrlFetchTransport
at com.google.appengine.tools.cloudstorage.oauth.OauthRawGcsServiceFactory.<clinit>(OauthRawGcsServiceFactory.java:31)
at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createRawGcsService(GcsServiceFactory.java:59)
at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:44)
at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:40)
at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:75)
at com.sparks.nirant.datastore.DataStoreService.getBlobKey(DataStoreService.java:207)
at com.sparks.nirant.datastore.DataStoreService.saveImageMapToDataStore(DataStoreService.java:183)
at com.sparks.nirant.serviceImpl.AdminServiceImpl.addGallery(AdminServiceImpl.java:121)
at com.sparks.nirant.server.AdminController.doPost(AdminController.java:297)
please assist.