Google Blobstore versus Google Cloud Storage [closed]
Asked Answered
P

3

52

We have our application hosted on Google app engine for Java and we have a requirement where we want to store the blood donor appreciation certificates (html files) somewhere.

So, we can use either Google Blobstore or Google Cloud Storage. I know both of these solutions are feasible to do using gae for Java

However, the problem for us is to decide which one to use. What are the pros and cons of these two approaches?

We are a non profit and cannot pay a lot.

Polyphagia answered 12/3, 2012 at 16:43 Comment(1)
I feel that this question is too broad as it is presently worded. You can do your own research to find out the pros and cons of both of these easily enough yourself. If you have a specific question, that good for StackOverflow.Vanish
M
15

Better to use the Blobstore. The service has 5 GB of space for free (as of March 2012). The cloud storage is a paid service. The App Engine blobstore is like Amazon S3, but less flexible. It has HTTP-based API and Java / Python APIs (see http://code.google.com/appengine/docs/java/blobstore/overview.html).

Muddleheaded answered 20/3, 2012 at 19:58 Comment(3)
The default bucket in Cloud Storage is also free up to 5GBs. And above that, as of now, they both cost the same: 0.026$ / GB / Month.Sophronia
reads and writes to the BlobStore cost after a point, CloudStore they don't you just pay for storage over the 5GB limit. It is pretty clear that Google wants to deprecate the Blobstore for the CloudStore and they are making the CloudStore the cheaper option to accomplish this. as well as removing that ridiclous upload url call back requirement for the Blobstore. GCS is plain old PUT/POST to a Servlet or writing to a stream from the server side.Lasonyalasorella
Actually Blobstore is better when it comes to images , because can easily be served resized images to many apps and can be served only one resized image at a time from Cloud Storage. ( cloud.google.com/appengine/docs/java/images/… ) Also the fact that when using Blobstore the request is not going through the server but the image is served directly to the client app. These two reasons are making Blobstore better for me. (also Blobstore now is without size limit)Cabinetwork
N
49

If you're starting a new project, I would go with Cloud Storage.

It seems that Google is pushing their Cloud Storage platform harder than their blobstore platform. For example, currently programmatically writing files to the blobstore is deprecated but is supported by Cloud Storage. I can't read the future, but I would bet that Google will be deprecating more and more of the blobstore API in favor of the Cloud Storage API, which will lead to headaches down the road.

UPDATE: Programatically writing to the blobstore is no longer supported, but it is fully supported on app engine. Further, you can use the blobstore API and still use Cloud Storage as a backend. At this point, it's clear that Cloud Storage will outlive the blobstore.

UPDATE 2017: Google's official recommendation is to now Cloud Storage rather than the blobstore. Called this one 4 years ahead.

Nationalism answered 8/11, 2013 at 18:43 Comment(1)
Given that they have "extracted" the App Engine Datastore into a self-contained Cloud Service, it seems clear they are moving towards an AWS-like model of discrete services you can use separately or together. Google Cloud Storage already fills that role and is actively promoted; whereas Blobstore is seemingly redundant.Roaring
M
15

Better to use the Blobstore. The service has 5 GB of space for free (as of March 2012). The cloud storage is a paid service. The App Engine blobstore is like Amazon S3, but less flexible. It has HTTP-based API and Java / Python APIs (see http://code.google.com/appengine/docs/java/blobstore/overview.html).

Muddleheaded answered 20/3, 2012 at 19:58 Comment(3)
The default bucket in Cloud Storage is also free up to 5GBs. And above that, as of now, they both cost the same: 0.026$ / GB / Month.Sophronia
reads and writes to the BlobStore cost after a point, CloudStore they don't you just pay for storage over the 5GB limit. It is pretty clear that Google wants to deprecate the Blobstore for the CloudStore and they are making the CloudStore the cheaper option to accomplish this. as well as removing that ridiclous upload url call back requirement for the Blobstore. GCS is plain old PUT/POST to a Servlet or writing to a stream from the server side.Lasonyalasorella
Actually Blobstore is better when it comes to images , because can easily be served resized images to many apps and can be served only one resized image at a time from Cloud Storage. ( cloud.google.com/appengine/docs/java/images/… ) Also the fact that when using Blobstore the request is not going through the server but the image is served directly to the client app. These two reasons are making Blobstore better for me. (also Blobstore now is without size limit)Cabinetwork
M
12

First, I'd say that if your HTML file(s) are small (or could be small via gzip compression), then just store it as a BlobProperty in the datastore and add meta-data properties so you can retrieve it appropriately later.

If this is not an option, then perhaps consider the future growth of your application. The two big things Cloud Storage has over the Blobstore are 1) accessibility by third-party and 2) no file size restrictions.

  • Will other services need to read or write these files as well? Then use Cloud Storage.
  • Will your files possibly exceed 50MB? Or could their sizes possibly be unknown? Then use Cloud Storage.

If, however, you KNOW that these two things will never need to be addressed for your application, then just stick with Blobstore.

Mccloud answered 23/8, 2012 at 6:17 Comment(1)
Blobstore file size limits were completely removed August 2011 code.google.com/p/googleappengine/issues/detail?id=2560Explication

© 2022 - 2024 — McMap. All rights reserved.