问题标签 [diskcache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
74 浏览

java - 我的 Java 桌面应用程序应该在哪里缓存其下载的资产?

我有一个 Java 桌面应用程序,作为其正常操作的一部分,它会下载数十到数百 MB 的图像和音乐数据。它维护此数据的磁盘缓存。如果部分或全部缓存被删除,应用程序会注意到并重新下载丢失的数据。

这是一个有 20 年历史的应用程序,从历史上看,它已将数据放置在user.home. 我正在计划更新,我想知道是否有用于存储 Windows、MacOS 和 Linux 的应用程序缓存数据的规范位置,如果有,是否有从 Java 访问这些路径的标准方法。

我知道的唯一先例是 Gradle 和 IntelliJ,它们都是桌面 Java 应用程序。Gradle 做我的应用程序目前所做的事情;它创建一个 ~/.gradle 目录并在那里转储数据。IntelliJ 显然试图使用2020 版的更多规范路径;例如,在 Mac 上,它将缓存数据保存到~/Library/Application Support/JetBrains/<product><version>.

是否有一个库可以为我提供每个操作系统上我的应用缓存的规范位置?如果没有,是否有人在某处有一个列表,以便我可以手动在正确的位置创建目录?

0 投票
1 回答
61 浏览

python - 如何通知用户正在使用缓存?

我正在使用 python 库diskcache及其装饰@cache.memoize器来缓存对我的 couchdb 数据库的调用。工作正常。但是,我想向用户打印数据是从数据库返回还是从缓存返回。

我什至不知道如何解决这个问题。

到目前为止我的代码:

0 投票
0 回答
25 浏览

caching - 在 AWS CloudFront 中设置更高的缓存过期时间,但不使用浏览器的磁盘缓存

问题

  • 我有放在 CloudFront 后面的 API
  • 我已将 AWS CloudFront 配置为将此 API 缓存 21 分钟。
  • 我点击了该页面,然后从 CloudFront 收到 API 响应。
  • 由于它在响应头部分(附有图像)中有“age”参数,因此它将信息缓存在磁盘缓存中。响应和请求标头的屏幕截图
  • 现在,如果我在这 21 分钟结束之前从后端更改了某些内容。我希望用户应该立即看到新鲜的内容。

问题

  • CloudFront 配置为将内容缓存 21 分钟,它使用“age”标头,但浏览器可以识别相同的标头,并将响应缓存在“磁盘”中,如上所示。
  • 这种情况下的新鲜内容只会在 21 分钟后显示给用户。
  • 我不能使用“max-age: 0”,因为它永远不会缓存在 CloudFront 和磁盘中,并且总是转到 API 来处理服务器任务和查询。

期待

  • 我想以某种方式永久缓存 CloudFront 内容并且不希望将其放在“磁盘缓存”中,这样​​每次我在后端进行更改并清除 CloudFront 缓存时,它都会向用户显示新内容.
0 投票
1 回答
125 浏览

python - 使用 DiskCache 和 memoize 缓存函数调用时如何排除参数?

我正在使用 Python 的 DiskCache 和 memoize 装饰器来缓存对静态数据数据库的函数调用。

我不希望用户和密码成为缓存键的一部分。

如何从密钥生成中排除参数?

0 投票
0 回答
90 浏览

python - 装饰函数加载截断图像时,Diskcache 模块无法缓存

我正在尝试缓存一个加载图像的函数PIL.Image.open(我也尝试过mpimg.imread)。一些图像被截断;我明白了OSError: image file is truncated (0 bytes not processed)。我试图ImageFile.LOAD_TRUNCATED_IMAGES = True防止引发异常。那行得通,但是 diskcache 模块的缓存没有效果。

下面是一个示例片段,它显示了当截断图像位于文件夹中时的这种行为:

也无法从装饰函数中捕获异常。我试过这样:

但该功能仍然出错;这是错误:

我觉得很奇怪加载图像的问题导致缓存无效。知道如何解决这个问题吗?”。也许磁盘缓存的维护者甚至会监视这个标签。

顺便提一句。加载mpimg.imread会给出此错误TypeError: No loop matching the specified signature and casting was found for ufunc true_divide

编辑

我将调试打印放入 matplotlib.image 到_pil_png_to_float_array这个块中。损坏的图像在转换为 numpy 数组时没有形状。