Java – Upload images to Google Cloud Storage using the app android

Upload images to Google Cloud Storage using the app android… here is a solution to the problem.

Upload images to Google Cloud Storage using the app android

I’m trying to upload an image to Google cloud storage.
I found an example of This explains how to do this.
I created an artifact bucket etc, but when I tried to create a client ID
I’m getting this error:

An error has occurred. Please try again later< img alt="Enter image description here" src=""/>

Where did this error come from?
Maybe there is another way to upload files to Google Cloud Storage using Android apps?

> edit ____________ In the new console, I can see a message telling me that only project owners can create clients for the Application Web and Account services.
So the error is because I connected an account collaborator

enter image description here
> edit __________
Now I can create a client ID, but I don’t know how to upload a file from android to a bucket, I read this But it works on java and not Android, anyone has an example, how do I do that?

Any help would be appreciated


I can finally upload images to Google Storage like this

  class RetrieveFeedTask extends AsyncTask<Void, Void, String> {

private Exception exception;

protected String doInBackground(Void... params) {

try {
            List<String> scopes = new ArrayList<String>();
              httpTransport= new;

agarro la key y la convierto en un file
              AssetManager am = getAssets();
              String STORAGE_SCOPE = "" ;
              InputStream inputStream ="*********114db0.p12"); you should not put the key in assets in prod version.

convert key into class File. from inputstream to file. in an aux class.
              File file =stream2file(inputStream);

Google Credentianls
              GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
                      .setServiceAccountId("**********[email protected]")

String URI = "" + "BUCKET_NAME"+"/"+"zzzzz3"+".jpg";
              HttpRequestFactory requestFactory = httpTransport.createRequestFactory(credential);

GenericUrl url = new GenericUrl(URI);

byte array holds the data, in this case the image i want to upload in bytes.

Resources res = getResources();
              Drawable drawable = res.getDrawable(;
              Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
              ByteArrayOutputStream stream = new ByteArrayOutputStream();
              bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
              byte[] bitMapData = stream.toByteArray();

HttpContent contentsend = new ByteArrayContent("image/jpeg", bitMapData );

HttpRequest putRequest;

putRequest = requestFactory.buildPutRequest(url, contentsend); response = putRequest.execute();
              String content = response.parseAsString();
              Log.d("debug", "response is:"+response.getStatusCode());
              Log.d("debug", "response content is:"+content);
            } catch (IOException | GeneralSecurityException e) {
                 TODO Auto-generated catch block
        return "";


protected void onPostExecute(String feed) {
        int i  = 0;
        int j = i;
         TODO: check this.exception 
         TODO: do something with the feed

Don’t forget to download the jar and put it in the lib folder:
– com.fasterxml.jackson.core.jar
– google-api-client-1.20.0.jar
– google-api-services-storage-v1beta2-rev21-1.15.0-rc.jar
– Google-http-client-1.20.0.jar
– google-http-client-jackson2-1.20.0.jar
– google-http-client-jdo-1.20.0.jar
– google-oauth-client-1.20.0.jar

Related Problems and Solutions