내 안드로이드 앱에서 Google Cloud Storage
에 이미지를 업로드하고 싶습니다. 이를 위해 나는 GCS JSON Api
이이 기능을 제공한다는 것을 조사했다. 나는 그 사용법을 보여주는 안드로이드 샘플에 대한 많은 연구를했다. developer site에서는 java 만 지원하는 코드 예제를 제공합니다. Android에서 해당 API를 사용하는 방법을 모르겠습니다. 나는 this과 this 링크를 언급했지만 많은 아이디어를 얻을 수 없었다. 안드로이드 애플 리케이션과 함께이 API를 사용할 수있는 방법에 나를 안내하십시오.Google Cloud Storage 사용 Android에서 JSON API 사용
답변
안녕하세요. 제가 해결 했으므로 클라우드 스토리지에 내 이미지가 업로드되었습니다. 이것은 다음과 같습니다.
참고 : 저는 XML API를 거의 동일하게 사용했습니다.
처음으로, 많은 라이브러리를 다운로드해야합니다. 가장 쉬운 방법은 maven 프로젝트를 생성하고 필요한 모든 의존성을 다운로드하도록하는 것입니다. 이 샘플 프로젝트에서 : Sample Project 라이브러리는해야한다 :
둘째, 당신은 api console 당신은 프로젝트를 만들어야합니다 사용하여 클라우드 스토리지에 대해 잘 알고 있어야합니다, 양동이를 작성, 버킷을 제공 권한 등 당신은 그 here
셋째에 대한 자세한 내용을 확인할 수 있습니다 모든 것들의 것이란 일단 코딩을 시작할 시간입니다. 이미지를 업로드하려고합니다. 클라우드 저장소는 OAuth와 작동하므로 API를 사용하려면 인증 된 사용자 여야합니다. 이를 위해서는 Service Accounts을 사용하여 인증하는 것이 가장 좋습니다.
우리는 우리의 코드에이 서비스 계정을 사용합니다 : 그것에 대해 걱정 말라, 당신이해야 할 유일한 것은이 같은 서비스 계정을 얻을 API 콘솔입니다.
제 4의은 일부 코드를 작성하고 이미지를 클라우드 저장소에 업로드 할 수 있습니다. 이 코드를 실행하려면 3 단계에서 생성 한 키를 assets 폴더에 넣어야합니다. 이름을 "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
shoud 내가 프로덕션 버전에서 p12 키를 넣은 자산이 아니라면? 고마워요 – Cristiana214
@ Cristiana214 메신저 아직도 생산에 있지 그래서 나는 그것에 대해 tjought하지 않았습니다. 그러나 문제는 p12 키를 제공하면 다른 누군가가 API에 액세스 할 수 있다는 것입니다. –
모든 코드를 알려주시겠습니까? JSON_FACTORY, STORAGE_SCOPE ...이 무엇인지 모릅니다. – tamtoum1987
- 1. Google Cloud Storage 사용 로컬 호스트의 JSON API
- 2. Google Cloud Storage : Google Cloud Storage Access를 구성하지 않는 JSON API 오류 403?
- 3. HTML 양식에서 Servlet을 통해 Google Cloud Storage (Google Cloud Storage 클라이언트 라이브러리 (Java 용) 사용)
- 4. Google Cloud Storage JSON API 간단한 업로드 인증
- 5. Google Cloud Storage API 및 Node.js
- 6. Google Cloud Storage 전파
- 7. Google Cloud Storage 인증
- 8. "jQuery" "Google Cloud Storage"
- 9. Google Cloud Storage 업로드 iOS
- 10. PHP 애플리케이션에서 Google Cloud Storage 사용 (App Engine에서 호스팅되지 않음)
- 11. Google Cloud Storage Buckets : 글로벌 사용 권한이있는 Linux 인스턴스에 장착
- 12. Cloud SQL에서 지속성 API 사용
- 13. Google Cloud Storage API에서 'Call error 5'
- 14. Google Cloud Storage .Net 클라이언트 라이브러리 설명서?
- 15. Android에서 Java API 사용
- 16. Google Cloud Storage 예산 한도
- 17. Python을 사용하는 Google Cloud Storage
- 18. IP 제한 Google Cloud Storage
- 19. Google Cloud Storage 및 BigQuery
- 20. Google Cloud Storage 에뮬레이터가 있습니까?
- 21. Google Cloud Storage ACL 문제
- 22. Google Cloud Storage JSON API로 시간 초과 설정
- 23. 웹 사이트 이미지를 제공하는 Google Cloud Storage
- 24. android에서 OCR 용 Google 문서 API 사용
- 25. Google App Engine - Google Cloud Storage에서 Blobstore API 사용
- 26. Google Cloud Storage AllUsers 권한이 작동하지 않습니다.
- 27. Google Cloud Storage Bucket의 공개 파일 공유
- 28. Android에서 S3 (Amazon Simple Storage Service) 사용
- 29. Google Cloud SQL에서 jOOQ 사용
- 30. 제한이있는 android에서 google apis 사용
찾았습니까? @ 자키? –
@chelo_c 아니요, 대신에 Google Cloud에 이미지를 저장하기 위해'Blobstore'를 사용하고 있습니다. – zanky