将图像/视频从Android / iOS发送到Google Cloud Endpoints

时间:2016-11-28 21:27:00

标签: java android ios google-cloud-storage google-cloud-endpoints

我真的需要你的帮助/建议/线索/等等。我正在为Android和iOS开发一个应用程序,允许用户上传图片和视频。

我想做的事情:

1 - Android / iOS将图片/视频发送到我的Google Cloud Endpoint;

2 - Google Cloud Endpoint将图片/视频上传到Google云端存储; (工程)

3 - Google Cloud Endpoint从Google云端存储中检索serveURL并发送回Android / iOS; (工程)

4 - Android / iOS通过其URL流式传输图片/视频。 (工程)

所以问题只是第一步,将图像/视频发送到Google Cloud Endpoint。

我经常阅读,搜索,研究并没有弄清楚如何去做。

请,任何建议将不胜感激。我也对有关实现此功能的方法的新想法持开放态度。谢谢你们!

- - - - - - - - - - - - - - - - - - - - - - - - - - - - 更新 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

经过研究后,我发现更好的方法是直接从Android / iOS上传。我想出了如何做到这一点,但现在我不知道如何实现servlet在客户端使用我的端点生成的urlUpload上传文件后自动调用。

到目前为止,我做到了:

1 - 客户请求我的Google端点检索要上传的网址;

2 - Google Endpoint会生成' / upload' url使用此代码:

BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
UploadOptions uploadOptions = UploadOptions.Builder.withGoogleStorageBucketName(ConstUtil.storage.BUCKET_NAME);

String uploadUrl = blobstoreService.createUploadUrl("/upload", uploadOptions);

response.setSimpleString(uploadUrl);
response.setCode(MWCode.SUCCESS.getCode());
response.setMessage(MWCode.SUCCESS.getMessage());

return response;

3 - 客户端(Android / iOS)收到此网址并上传文件(我还没有实现它,但我看到很多干净的示例,看起来很容易理解)

4 - Blobstore服务触发Google Endpoint作为上传对象的回调发送密钥

5 - 我使用Blob键检索serveURL以提供客户端文件(Android / iOS)(已实现)

一旦我看到的所有教程和示例都没有使用Google Cloud Endpoints,我就不知道如何实施第4步。请问,有没有人可以给我路径/链接/代码或我如何实现它的线索?

2 个答案:

答案 0 :(得分:2)

如果您正在使用Endpoints框架,那么这很难做到。对于单个图像,您可以对它们进行base64编码,但效率不高。它可能更适合您的客户端直接与GCS交互并使用签名URL进行上传。

答案 1 :(得分:2)

正如Saiyr建议的那样,您应该从Android应用程序直接上传到云端存储(无需通过端点)。请参阅Uploading image from Android to GCSupload image to google cloud storage with an application android

由于您知道存储桶和文件名,因此上传文件的URL很容易扣除,请参阅以下文档以确定要使用的URL(取决于用户是否需要进行身份验证,请参阅第34节;授予用户对对象的读访问权限#); https://cloud.google.com/storage/docs/cloud-console#_accessing