Google App Engine - Busting Serving URL Cache

时间:2014-03-10 06:12:59

标签: image google-app-engine caching google-cloud-storage blobstore

我终于设法在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

enter image description here

这将返回同一图像的另一个版本(即使它应该返回相同的图像,只是具有不同的大小): http://lh5.ggpht.com/bbZLUGp07DJNdnkN-ezjO5Gu2hSTMIMWXnRkFJ8i9buEBpjMDHMOxviwuJIIS96mPA_2tYTUbokVY16oNwzrt4g0_7Q=s504-c

enter image description here

如何让Google App Engine提供最新版本的图片?