3

Я пытаюсь загрузить изображение aN в облако хранения Google.
Я нашел такой пример https://github.com/pliablematter/simple-cloud-storage, который объясняет, как это сделать.
Я создал ведро проекта и т.д., но когда я пытаюсь создать идентификатор клиента я получаю эту ошибку:загрузить изображение в облако Google облако с приложением android

Произошла ошибка. Повторите попытку позже enter image description here

Откуда взялась эта ошибка?
Возможно, есть еще один способ загрузить файл в облачную хранилище Google с помощью приложения Android?

_______________________________EDIT ___________________________________________ в новой консоли я могу видеть сообщение, в котором сообщается, что только владелец проекта может создавать клиенты-клиенты для веб-приложений и учетных служб приложения. Так ошибка вызвана тем, что я соединяю с счетом colaborator

enter image description here _________________________________EDIT___________________________________________ Теперь я могу создать идентификатор клиента, но я не знаю, как я могу загрузить файл из андроида в ведро, я прочитал эту https://github.com/pliablematter/simple-cloud-storage но для java не Android, у кого-нибудь есть пример, как я могу это сделать?

Любая помощь будет оценена

+1

Не могли бы вы попытаться создать учетную запись службы из [новой Консоли разработчиков] (https://console.developers.google .com /) нажав на ваш проект -> API и auth -> Credentials -> Создайте новый идентификатор клиента и сообщите нам, можете ли вы сделать это таким образом? –

+0

Привет, Я только что редактировал свое первое сообщение – tamtoum1987

+0

Привет @ tamtoum1987, тогда этот вопрос можно было бы считать ответом, правильно? Все, что вам нужно сделать, - попросить владельца проекта предоставить вам разрешения владельца или создать учетную запись службы. –

ответ

4

я могу, наконец, загружать изображения на хранение Google, как этот

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

    private Exception exception; 

    protected String doInBackground(Void... params) { 

     try { 
      List<String> scopes = new ArrayList<String>(); 
      scopes.add(StorageScopes.DEVSTORAGE_FULL_CONTROL); 
       httpTransport= new com.google.api.client.http.javanet.NetHttpTransport(); 


       //agarro la key y la convierto en un file 
       AssetManager am = getAssets(); 
       String STORAGE_SCOPE = "https://www.google.com/analytics/feeds/" ; 
       InputStream inputStream = am.open("*********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) 
         .setJsonFactory(JSON_FACTORY) 
         .setServiceAccountId("**********[email protected]") 
         .setServiceAccountScopes((scopes)) 
         .setServiceAccountPrivateKeyFromP12File(file) 
         .build(); 




       String URI = "https://storage.googleapis.com/" + "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(R.drawable.camera); 
       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); 




       com.google.api.client.http.HttpResponse 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 
       e.printStackTrace(); 
      } 
     return ""; 

    } 

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

Не забудьте скачать банку и поставить его на Lib папку: - 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-c lient-jdo-1.20.0.jar - google-oauth-client-1.20.0.jar

+0

Привет, вы можете сказать мне, что такое stream2file(), JSON_FACTORY, am.open ("********* 114db0.p12"), **** ******[email protected], – PankajAndroid

+1

Извините за задержку я Juste увидел ваше сообщение, :(, stream2file: \t \t @SuppressLint ("NewApi") \t \t общественного статического stream2file файла (InputStream в) броски IOException { \t \t \t окончательного файла TempFile = File.createTempFile ("okkk", NULL); \t \t \t TempFile.deleteOnExit(); \t \t \t FileOutputStream out = new FileOutputStream (tempFile); \t \t \t IOUtils.copy (in, out); \t \t \t return tempFile; \t \t} – tamtoum1987

+0

У вас есть библиотеки, такие как Gradle? Я использую Android studio – Dinuka

Смежные вопросы