我终于设法在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提供最新版本的图片?
答案 0 :(得分:1)
虽然这不能解答有关缓存清除的问题,但它可能会帮助您解决问题。
试试这4个网址
http://lh5.ggpht.com/bbZLUGp07DJNdnkN-ezjO5Gu2hSTMIMWXnRkFJ8i9buEBpjMDHMOxviwuJIIS96mPA_2tYTUbokVY16oNwzrt4g0_7Q=s0 http://lh5.ggpht.com/bbZLUGp07DJNdnkN-ezjO5Gu2hSTMIMWXnRkFJ8i9buEBpjMDHMOxviwuJIIS96mPA_2tYTUbokVY16oNwzrt4g0_7Q=s0-r90 http://lh5.ggpht.com/bbZLUGp07DJNdnkN-ezjO5Gu2hSTMIMWXnRkFJ8i9buEBpjMDHMOxviwuJIIS96mPA_2tYTUbokVY16oNwzrt4g0_7Q=s0-r180 http://lh5.ggpht.com/bbZLUGp07DJNdnkN-ezjO5Gu2hSTMIMWXnRkFJ8i9buEBpjMDHMOxviwuJIIS96mPA_2tYTUbokVY16oNwzrt4g0_7Q=s0-r270
即您可以动态旋转图像而无需手动操作。