gpt4 book ai didi

android - 在 android 中使用谷歌云存储 JSON api

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:05 25 4
gpt4 key购买 nike

我想从我的 Android 应用程序上传图片到 Google Cloud Storage。为此,我搜索并发现 GCS JSON Api 提供了此功能。我对演示其用途的 Android 示例进行了大量研究。关于developer site他们提供了仅支持 java 的代码示例。我不知道如何在 Android 中使用该 API。我提到了thisthis链接但无法得到太多的想法。请指导我如何将此 api 与 android 应用程序一起使用。

最佳答案

好的,伙计们,我解决了这个问题,并将我的图像上传到 Cloud Storage 中,一切正常。这是这样的:

注意:我使用的是 XML API,它几乎是一样的。

首先,您需要下载很多库。最简单的方法是创建一个 Maven 项目并让它下载所有需要的依赖项。从这个示例项目: Sample Project 这些库应该是:

enter image description here

其次,您必须使用 api console 熟悉云存储您必须创建项目、创建存储桶、授予存储桶权限等。您可以找到有关该 here 的更多详细信息

第三,准备好所有这些后,就可以开始编码了。假设我们要上传图片:云存储与 OAuth 配合使用,这意味着您必须是经过身份验证的用户才能使用该 API。为此,最好的方法是使用 Service Accounts 进行授权。 .别担心,您唯一需要做的就是在 API 控制台中获取这样的服务帐户:

enter image description here

我们将在我们的代码中使用此服务帐户。

第四,让我们写一些代码,假设将图像上传到云存储。要使此代码正常工作,您必须将在第 3 步中生成的 key 放在 Assets 文件夹中,我将其命名为“key.p12”。

我不建议您在生产版本上执行此操作,因为您会泄露您的 key 。

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

关于android - 在 android 中使用谷歌云存储 JSON api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21953744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com