【问题标题】:Google App Engine - Busting Serving URL CacheGoogle App Engine - 破坏服务 URL 缓存
【发布时间】: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


    【解决方案1】:

    【讨论】:

    • 如果旋转是我唯一要做的事情,那么通过 url 参数旋转是一个很好的解决方案;一些图像也被翻转,所以如果存在 -flr 和 -ftb,那么我宁愿走那条路。
    • 很好,在这种情况下,我只需要跟踪翻转/旋转的图像。我仍然对解决缓存问题感到好奇,所以我将把它打开一段时间。
    • 所以关于缓存的想法是在 GCS 中为您手动旋转/翻转/缩放的图像使用不同的文件名,这样您将获得每个不同的 URL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多