首页 文章

我需要一种直接的方式在图像上传到Google Cloud 端存储时自动调整图像大小[关闭]

提问于
浏览
2

我有一个移动应用,目前正在将图片从应用上传到Google Cloud 端存储 . 问题是,原始文件非常大(我仍然希望保留),所以当通过公共URL在应用程序中查看它们时,下载需要很长时间 .

我想,当图像上传到 Cloud 存储时,调整它们的大小,并使用较小的图像的URL在应用程序中预览它们 .

我认识到解决方案可能是使用App Engine和Python Images API,但我无法弄清楚如何将App Engine连接到 Cloud 存储(我不熟悉App Engine) .

任何指导将不胜感激 . -Zach

2 回答

  • 3

    您可以配置对象更改通知(https://cloud.google.com/storage/docs/object-change-notification)并创建一个App Engine应用程序,该应用程序可调整每个传入图像的大小并生成较小的图像 . 一种常见的方法是使用单独的传入和实时存储桶,因此实时存储桶仅包含已调整大小的图像 .

  • 1

    我在Java中使用以下工作流程 - 它在python中必须是相同的:

    (a)当用户准备上传图像时,我打电话给App Engine后端请求上传URL . 此上载URL使用BlobstoreService并使用 Cloud 存储桶名称创建 . 您还传递一个像“/ imageupload”这样的回调处理程序 .

    blobstoreService.createUploadUrl("/imageupload", UploadOptions.Builder.withGoogleStorageBucketName("myBucket"));
    

    (b)客户端接收上载URL并将其作为URL插入上载表单 . 提交表单后,原始映像将直接上载到 Cloud 存储桶中 .

    (c)上传完成后,Cloud Storage将调用您提供的回调处理程序(例如“/ imageupload”) . 此调用将包括有关上载对象的信息,包括其 Cloud 存储对象名称和大小 .

    收到此回调后,您可以根据此信息创建一个Image对象,并将其传递给Images API以进行大小调整 . 然后您可以保存已调整大小的图像 .

    最好的部分是App Engine和 Cloud 存储在此工作流程中无缝工作,只要所有内容都在同一个projectID下 . 您无需担心身份验证 .

相关问题