我想從我的Android應用程序上傳Google Cloud Storage
上的圖像。爲此我搜索並發現GCS JSON Api
提供此功能。我爲Android示例做了大量的研究,演示了它的使用。在developer site上,他們提供了僅支持java的代碼示例。我不知道如何在Android中使用該API。我提到了this和this的鏈接,但沒有太多想法。請指導我如何使用這個API與Android應用程序。在Android中使用Google雲端存儲JSON api
回答
好吧,所以我解決了它,並讓我的圖像上傳到雲存儲都很好。 這就是:
注:我使用的XML API幾乎是相同的。
第一個,您需要下載很多庫。 最簡單的方法是創建一個Maven項目並讓它下載所需的所有依賴項。從這個示例項目: Sample Project 的圖書館應該是:
二,則必須使用api console 您必須創建一個項目,熟悉雲存儲,創建一個水桶,給桶權限等 您可以找到有關here
三更多的細節,一旦你擁有所有這些事情,REA dy是開始編碼的時候了。 比方說,我們要上傳一張圖片: 雲存儲與OAuth協同工作,這意味着您必須是經過身份驗證的用戶才能使用API。爲此,最好的方法是授權使用Service Accounts。不要擔心,你需要做的唯一事情是在API控制檯中看到一個服務帳戶這樣的:
我們將使用這個服務帳戶在我們的代碼。
第四,讓我們寫一些代碼,可以說上傳圖片到雲存儲。 對於此代碼的工作,您必須將您在步驟3中生成的密鑰放置在資產文件夾中,我將其命名爲「key.p12」。
我不建議你在生產版本上這樣做,因爲你會發放你的密鑰。
try{
httpTransport= new com.google.api.client.http.javanet.NetHttpTransport();
//agarro la key y la convierto en un file
AssetManager am = context.getAssets();
InputStream inputStream = am.open("key.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 = UserProfileImageUploadHelper.createFileFromInputStream(inputStream,context);
//Google Credentianls
GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(Collections.singleton(STORAGE_SCOPE))
.setServiceAccountPrivateKeyFromP12File(file)
.build();
String URI = "https://storage.googleapis.com/" + BUCKET_NAME+"/"+imagename+".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.
HttpContent contentsend = new ByteArrayContent("image/jpeg", byteArray);
HttpRequest 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 (Exception e) Log.d("debug", "Error in user profile image uploading", e);}
這會將圖像上傳到您的雲存儲桶。
有關api的更多信息,請查看此鏈接Cloud XML API
如果不是在資產,我應該把生產版p12的密鑰?謝謝 – Cristiana214
@ Cristiana214即時通訊仍然沒有在生產,所以我沒有tjought這一點。但問題是,如果您發出p12密鑰,其他人將能夠訪問api。 –
你可以給所有代碼嗎?我不知道什麼是JSON_FACTORY,STORAGE_SCOPE ...? – tamtoum1987
- 1. 使用S3 interop API在Google雲端存儲中列出對象
- 2. Firebase和Google雲端存儲API
- 3. openPrefetchingReadChannel無法在Google雲端存儲客戶端API中工作
- 4. 使用Python的Google雲端存儲
- 5. 使用Google雲端存儲的Apache Drill
- 6. 「jQuery」「Google雲端存儲」
- 7. Google雲端存儲傳播
- 8. Google雲端存儲.Net API:使用UploadAsync設置AsyncState
- 9. 在Google雲端存儲中存儲關鍵值類似於Google雲端存儲中的數據
- 10. 如何在Google雲端存儲中使用OAuth2Decorator?
- 11. 從Google雲端存儲桶中讀取JSON文件內容
- 12. 如何使用存儲在Google雲端存儲中的圖像調用Google Vision API?
- 13. firebase雲功能Google雲端存儲API錯誤
- 14. 哪個是Google API使用Android應用文件存儲的最佳方式? Google Drive sdk或Google雲存儲API?
- 15. 使用CloudFlare將CDN存儲到Google雲端存儲桶
- 16. Git使用Google雲端存儲的大型文件存儲
- 17. 如何使用PHP從Google雲端存儲中刪除對象?
- 18. 適用於iOS的Google雲端存儲
- 19. BigQuery中的Google雲端存儲桶
- 20. Google雲端存儲文檔縮略圖?
- 21. 如何在存儲在Google雲端存儲中的文件上使用cv2.imread?
- 22. 使用gcloud-python在Google雲端存儲中設置元數據
- 23. Google雲端存儲目標c樣本
- 24. Android應用程序中的Google雲端存儲
- 25. 上傳Google雲端存儲iOS
- 26. Google雲端存儲 - 應用程序中的存儲區權限
- 27. 編寫CSV以存儲在Google雲端存儲中
- 28. 使用c#從Google雲端存儲中下載對象
- 29. 谷歌雲端硬盤/ Google雲端存儲
- 30. Google雲端點存儲桶下載器
你找到了什麼? @ zanky? –
@chelo_c不,我沒有使用「Blobstore」在Google Cloud上存儲圖像。 – zanky