在Java中刷新资源的ETag

时间:2016-04-16 16:00:45

标签: java amazon-s3 etag spark-java

我有一个与S3集成的API,以便上传/下载资源。

我可以成功检索并缓存每个资源的etags。

它们存储为HashMap,其中键是资源的ID(确切地说是UUID),值是从Amazon S3返回的ETag。

作为一个例子,我有一个我的实体的徽标,用户可以在他们认为合适时更新它。

在我看来,只需更新我的HashMap中的条目就可以在PUT请求中刷新etag缓存

这是用Java做的正确方法吗?

我在每个GET请求的开头运行这段代码。

private void validateETag(UUID id, Request rq, Response rs) {

    String eTag = rq.headers("If-None-Match");
    String cachedETag = etagCache.get(id);
    if (eTag != null && cachedETag != null && eTag.equals(cachedETag)) {
        rs.header("Cache-Control", "max-age=60");
        rs.header(ETAG_KEY, eTag);
        halt(304);
    }
}

0 个答案:

没有答案