- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试学习如何使用 Apache Commons VFS2。
我已经阅读了我能找到的所有文档,并且我已经有点熟悉 API,但仍有一件事我不是很清楚。
Cache机制是如何工作的?特别是:
我不明白缓存策略和 FilesCache 接口(interface)之间的区别。什么时候用哪个?
这里的文档中说:http://wiki.apache.org/commons/VfsCacheStrategy ... 有 3 种可能的缓存策略,每一种都有详细说明。我得到了“最简单的”on_call 策略,但其他两个我没有。例如 - 如果我们选择 MANUAL 策略,则表示“您必须使用 fileObject.refresh() 来使用文件系统刷新您的对象”。但这到底意味着什么呢?这是否意味着如果我将字节写入此 FileObject 的 FileContents,在我关闭文件对象或调用刷新之前它们实际上不会被写入?如果我有 2 个从同一个 URI 解析的 FileObjects 而我 delete() 第一个怎么办?由于缓存了文件对象,第二个 exists() 方法是否仍会返回 true ?
当我尝试在我的机器上本地使用不同的缓存策略时,我真的没有发现任何行为差异。它们的行为都相同,并且文件始终与 FS 同步(或者至少它们不同步并不明显)。
最佳答案
CacheStrategy
基本上控制 FileObject
中元数据的重新同步在多次通话之间。 FileObject
决定何时刷新其世界观。
它将调用refresh()
每次你resolve它,否则它会调用 refresh()
在每个 FileObject
之前方法调用(通过 OnCallRefreshFileObject
装饰器)或从不自动调用。
refresh()
大多数时间设置 FileObject
状态分离,因此在下一个操作检查 attach()
时会重新读取它.
它主要与属性和子元素等元数据有关,我认为没有任何文件系统提供者实际缓存内容。
FilesCache
实际上负责缓存 FileObject
的实例中间resolveFile()
电话。所以如果你碰巧解析或导航到同一个文件,你也会得到相同的 java 对象实例(除非你使用 NullFilesCache
或 LRUFilesCache
缓存过期的一些条目)。
关于java - Commons VFS 缓存是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27794234/
我正在尝试使 Spring 4.0.2 作为 JBoss 7 模块运行。当我部署 war 文件时出现以下错误 Caused by: java.lang.IllegalStateException: C
本文分享自华为云社区《鸿蒙轻内核M核源码分析系列二一 01 虚拟文件系统VFS》,作者:zhushy 。 VFS(Virtual File System)是文件系统的虚拟层,它不是一个实际的文件系统,
我正在关注 AWS 教程 Build a Modern Web Application - [Python] . 我在 模块 2B:使用 AWS Fargate 部署服务 @步 B:本地测试服务 我成
我在 WSO2 VFS 系统上遇到了一个小问题。我有一个简单的入站端点,每 5 秒扫描一个文件夹以读取 CVS 文件。我想处理文件名不是预期文件名的情况。我通过错误序列解决了这个问题,但仍然遇到了技术
出于安全原因,我需要一个 SQLite 实现来允许我在磁盘上加密 db 文件。我注意到 SQLite 只适用于常规文件,并且没有支持可用流的实现(奇怪的是,因为很多人似乎都想要一个)。如果我有这样的实
我的代码中有 org.apache.commons.vfs.FileObject,任务完成后我需要删除该文件。其中FileObject有delete()方法。但它会抛出 FileSystemExcep
当我们在 linux 终端上发出命令时。由此创建的进程遍历到 VFS 层,在那里它决定调用哪个文件系统函数,如 ext4、ext3 或任何其他文件系统。所以我的问题是 VFS 如何区分文件系统?从 V
本文整理了Java中org.reflections.vfs.ZipDir类的一些代码示例,展示了ZipDir类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平
我正在研究将Apache Commons VFS用于需要通过ftp,sftp和https在本地服务器和远程服务器之间传输文件的项目。 标准用法示例是从静态方法获取FileSystemManager。
下面代码的问题是VFS似乎无法持久化字节数组。当 Xodus VFS 写入零字节时: @Override public FileModel put( String appId, S
我尝试使用相对路径通过 Apache VFS 获取文件夹的父级,但我得到“无效的相对路径” public static void main(String[] args) throws Exceptio
我将我的 Web 应用程序从 JBOSS 5 升级到 JBOSS 7。在我的 Web 应用程序中,为了获取包含特定文件的 jar,我使用了以下代码行。 static final Pattern _UR
我刚刚发现 VFS 作为访问 sftp 的一种方式。似乎可行,但所有示例均假设本地文件;相反,我的数据存储在内存中。我只看到一个方法 copyFrom(FileObject),没有接受流或缓冲区的重载
我对 Commons VFS 有疑问。我想使用 SFTP 连接到一个目录并列出它。这是代码: FileSystemOptions opts = new FileSystemOptions(); Sft
我是 samba 开发的新手;在当前任务中,我想为 Samba 设计一个 VFS 层。我想捕获一些基本文件操作并将其定向到自定义库支持的 API。我以 vfs_ceph 为例;但它似乎与当前的 sam
我正在尝试使用 commons-vfs 作为文件系统包装器,以便更轻松地对一些需要接触文件系统的代码进行单元测试。现在我只是熟悉 API。我想做的是创建一个虚拟文件系统,并添加几个文件(一个文件夹,然
我是 hadoop 的新手,我正在使用 apache hadoop 1.0.3 并使用 redhat linux 6.0 vm,而我正在尝试从本地 windows 加载示例文件7 到 Hadoop“H
我将多媒体文件及其元数据存储在 RDBMS 中(实际上,实际的媒体文件存储在 FS 中,但我们不谈这个)。 我想提供此信息的文件系统 View ,以便用户可以使用 Windows 资源管理器和类似的东
我正在尝试学习如何使用 Apache Commons VFS2。 我已经阅读了我能找到的所有文档,并且我已经有点熟悉 API,但仍有一件事我不是很清楚。 Cache机制是如何工作的?特别是: 我不明白
我尝试处理的问题是保存大量(数百万)个通过网络发送的小文件(最多 50KB)。保存是按顺序完成的:服务器接收到一个文件或目录(通过网络),并将其保存在磁盘上;下一个到达,它被保存等。显然,如果多个服务
我是一名优秀的程序员,十分优秀!