【发布时间】:2014-06-16 03:54:21
【问题描述】:
appengine/image 包适用于存储在 Blobstore 中的图像。但是,调整存储在 Google Cloud Storage 中的图像大小的好方法是什么?
【问题讨论】:
标签: google-app-engine go
appengine/image 包适用于存储在 Blobstore 中的图像。但是,调整存储在 Google Cloud Storage 中的图像大小的好方法是什么?
【问题讨论】:
标签: google-app-engine go
您可以将相同的图片服务与 Google Cloud Storage 一起使用,尤其是在您使用 Blobstore API 上传图片时。
Java 示例代码:
String fullName = "/gs/" + bucketName + "/" + objectName;
Image picture = ImagesServiceFactory.makeImageFromFilename(fullName);
Transform resize = ImagesServiceFactory.makeResize(maxWidth, maxHeight);
picture = imagesService.applyTransform(resize, picture);
在 Go 中,你可以使用BlobKeyForFile 函数:
BlobKeyForFile 返回 Google 存储文件的 BlobKey。这 文件名的格式应为“/gs/bucket_name/object_name”。
【讨论】:
picture 保存回 App Engine 内的谷歌云存储?
Image 中获取byte[] 并将其保存到云存储。请记住设置正确的内容类型(例如“image/jpeg”)和文件扩展名,否则将无法在浏览器中打开。
如今,图像裁剪功能相当容易实现。然后,您可以对图像执行任何操作 - 将其存储回 Google Storage 或立即将其返回给客户端。
此外,您可以轻松地将该功能部署到任何基于云的无服务器解决方案。我使用的是Cloud Run,因为它是基于 Docker 的,因此可以潜在地移植到任何地方。
我有一个 service,我们用于基于 nodejs/sharp 进行图像裁剪并部署到 Google Cloud Run 中。您可以按原样使用它。其中没有任何特定于项目的硬编码。
【讨论】: