【发布时间】:2014-04-13 03:31:16
【问题描述】:
我终于设法让图像在 App Engine 上正确旋转,现在我正在努力解决正在缓存的图像,而标准的缓存破坏技术无济于事。
所以当我第一次旋转图片时,我得到一个不同的 URL 并且图片被旋转了。
我第二次旋转它,我得到相同的 URL,只有在附加 =s300-c 后图像才会旋转,第三次旋转时,我需要将 =s300-c 更改为 -s301-c以便查看新图像。
如果我回到 =s300-c,我会得到图像的先前旋转。
附加 ?datetimegoeshere 不起作用,这让我相信缓存发生在 Google 方面,这不是浏览器问题。
为了始终获取最新版本的图片,我可以在图片投放网址中附加什么内容?
我正在使用以下代码来编写旋转后的图像:
GcsServiceFactory.createGcsService().delete(fileName);
GcsOutputChannel outputChannel = GcsServiceFactory.createGcsService().createOrReplace( fileName, GcsFileOptions.getDefaultInstance());
outputChannel.write(ByteBuffer.wrap(newImage.getImageData()));
outputChannel.close();
以及生成新服务网址的代码:
String newImageUrl = imagesService.getServingUrl(ServingUrlOptions.Builder.withBlobKey(blobKey));
(此处发布的其余源代码:Storing rotated / flipped images in Google App Engine)
例如,此 URL 将为我提供一个版本的图像: http://lh5.ggpht.com/bbZLUGp07DJNdnkN-ezjO5Gu2hSTMIMWXnRkFJ8i9buEBpjMDHMOxviwuJIIS96mPA_2tYTUbokVY16oNwzrt4g0_7Q=s505-c
这将返回相同图像的另一个版本(即使它应该返回相同的图像,只是大小不同): http://lh5.ggpht.com/bbZLUGp07DJNdnkN-ezjO5Gu2hSTMIMWXnRkFJ8i9buEBpjMDHMOxviwuJIIS96mPA_2tYTUbokVY16oNwzrt4g0_7Q=s504-c
如何让 Google App Engine 提供最新版本的图片?
【问题讨论】:
标签: image google-app-engine caching google-cloud-storage blobstore