问题标签 [xattr]
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.
java - 如何使用 Java 在 OS X 上的扩展文件属性中存储哈希?
前言 我正在研究一个用java编写的独立于平台的媒体数据库,其中媒体文件由文件哈希标识。用户应该能够移动文件,所以我不想依赖任何文件路径。导入后,我将路径和哈希存储在我的数据库中。我基于准确性和性能之间的权衡开发了一种快速文件哈希 id 算法,但快速并不总是足够快。:)
为了更新和导入媒体文件,我需要(重新)创建库中所有文件的文件哈希。我现在的想法是只计算一次哈希并将其存储在文件元数据(扩展属性)中,以提高支持扩展文件属性的文件系统的性能。(NTFS、HFS+、ext3...)我已经实现了,你可以在这里找到当前源:archimedesJ.io.metadata
尝试 乍一看,Java 1.7 通过UserDefinedFileAttributeView提供了一种处理元数据的好方法。对于大多数平台,这都有效。遗憾的是,UserDefinedFileAttributeView不适用于 HFS+。虽然,我不明白为什么不支持特别是 HFS+ 文件系统 - 它是元数据的主要格式之一?(请参阅相关问题-它不提供任何解决方案)
如何使用 Java 在 OS X 上存储扩展文件属性? 为了克服这个 java 限制,我决定使用 OSX 上的xattr命令行工具,并将它与 Java 进程处理一起使用来读取它的输出。我的实现有效,但速度很慢。(重新计算文件哈希更快,多么讽刺!我在 Mac BookPro Retina 上进行测试,带有 SSD。)
事实证明,xattr 工具的运行速度很慢。(写起来很慢,但更重要的是读取属性也很慢)为了证明这不是 Java 问题,而是工具本身,我创建了一个简单的 bash 脚本,在几个具有我的自定义属性的文件上使用 xattr 工具:
如果我运行它,这些行会彼此“快速”出现,但我希望在几毫秒内立即向我显示输出。一点延迟清晰可见,因此我猜该工具不是那么快。在 java 中使用它给了我创建进程、解析输出的额外开销,这使得它变得更慢了。
有没有更好的方法来使用 Java 访问 HFS+ 上的扩展属性?使用 Java 在 OS X 上使用扩展属性的快速方法是什么?
python-2.7 - 最新版本的 xattr (0.6.4) 是否兼容最新的稳定版 Python (2.7.5)?
我问这个问题是因为我在 Mac OS X Mountain Lion 10.8.3 上安装 Little Snitch 3.1 时遇到问题。确实,我收到以下错误:
在...上删除隔离区时出错:python 2.7.5 版无法运行/usr/bin/xattr
。尝试替代方案:
运行man python
以获取有关 Mac OS X 中的多版本支持的更多信息。
Mountain Lion 附带 Python 2.7.2。我使用此处的说明将 Python 更新到 2.7.5 版: http ://wolfpaulus.com/jounal/mac/installing_python_osx
就个人而言,我既不了解隔离是什么,也不了解 xattr 的作用!
我从 Little Snitch Support 获得的帮助是:“如果没有 MacPorts 选项来切换回以前的版本,最好从 OS X 安装程序磁盘重新安装 10.8.3 系统文件,以希望恢复 python 安装。”
然而,我遵循了 Wolf Paulus 的指示,因为我想避免在我的 Mac 上安装多个版本的 Python。我只想要最新的稳定版本,即 2.7.5。我还怀疑按照 Little Snitch Support 的建议去做真的会让我的 Mac 上的事情变得一团糟!
任何帮助理解问题,甚至更好地解决问题,将不胜感激。
谢谢你。
python - 通过 _kMDItemUserTags 或 kMDItemOMUserTags 在 xattr 中使用多个关键字
在重新组织我的图像时,为了期待 OSX Mavericks,我正在编写一个脚本来将标签插入到xattr
我的图像文件的字段中,这样我就可以使用 Spotlight 搜索它们。(为了安全起见,我也在编辑 EXIF。)
我的问题是:
哪个属性最好用?
_kMDItemUserTags
似乎是 OSX 版本,但kMDItemOMUserTags
已被 OpenMeta 使用。理想情况下,我希望能够与 Linux 和 OSX 前向兼容。如何设置多个标签?是逗号或空格分隔还是其他?
例如,使用 pythonxattr
模块,我发出这些命令:
我也看到提到这些标签:kOMUserTags
但kMDItemkeywords
不知道它们是否可能被实施......
编辑:进一步调查表明,对于 10.8 中可搜索的内容,
- 您需要在 kMD 前面加上 com.apple.metadata:
- 您必须进行十六进制编码或包装在 plist 中。
此 python 代码将为 kMDItemFinderComment 生成标签,该标签可在聚光灯下搜索...
我无法让它在具有可靠结果的文件夹上递归工作。
filesystems - 扩展属性存储在哪里?
这是一个简单的问题,但我已经做了一些研究,但找不到任何答案......所以有谁知道当我们通过 xattr 定义扩展属性时,这些属性是否存储在文件内容中 - 作为文件内容的一部分(最终,到底是什么?),或者如果 inode 有一个特殊的区域来存储这些?
顺便说一句,我在 ext4 中读到“每个扩展属性都限于一个文件系统块(例如 4 KiB)”。如果我想为文件系统中的每个文件存储 7 个扩展属性,我不知道这是否足够。这是现实的吗?
我的最后一个问题是,如果文件移动到具有不同文件系统的其他机器上,这些扩展属性是否可移植,这些属性会发生什么情况?
macos - 使用 xattr 设置 Mac OSX 隔离属性
StackOverflow 和其他地方有很多关于如何清除 Mac 隔离属性的信息。就我而言,我想设置它。这是为了测试我的应用程序是否已正确签名,以便用户在下载后会收到“不受信任的开发人员”警告。
我的应用程序特别大(我们从一个大文件下载站点分发,而不是从商店分发)并且必须上传和下载来测试它并不方便。过去一周我与代码签名发生了一些争执,所以这个测试对我来说很重要。
一旦文件具有隔离属性,我就会看到如何将其更改为具有以下值:
但我不知道如何首先给它财产。
macos - 如何为 Gatekeeper 设置隔离标志
我正在寻找一种在下载后标记某些文件的方法,以便看门人检查它们。Web 浏览器还为网守隔离下载的文件。
我知道文件“com.apple.quarantine”上设置了扩展属性,但在我的文件上设置此属性没有帮助。我想知道这样做的正确方法是什么?
linux - 在 SELinux 中读取文件的扩展属性
我想在 linux 中读取文件的功能。
我想用完整的细节回答这样的问题......
我试过了ls -l
,getfattr
但xattr
没有任何效果......
应用 selinux 属性值后,我如何读取它?
请帮忙
php - 如何使用 PHP 操作扩展属性?
所以我在一个文件夹中有一个巨大的文本文件列表,我必须使用 PHP 脚本处理这些文件,如果处理成功,我需要丢弃该文件。但是,我最多只想尝试每个文件 3 次。如果在第 3 次尝试失败后,无论如何我都会丢弃该文件。
因此,在做了一些研究之后,我了解了 Linux 扩展文件属性,这似乎是一种通过扩展属性在每个文件中保留计数器的可行方法。
进一步的研究告诉我,PHP 通过一个名为 xattr 的 Pear 包来支持这一点。然后我通过运行这个命令行安装了所需的 libattr 扩展(顺便说一下,这是一个 Ubuntu 12.04 系统):
那工作得很好。然后我安装了 Pear xattr:
这也成功了,它表明我必须将此行添加到 php.ini:
我也这样做了,然后重新启动了 Apache。但是当我尝试在 PHP 中使用任何 xattr 命令时,我总是得到这个:
调用未定义的函数 xattr_supported()...
我检查了一下phpinfo()
,它表明 xattr 支持已启用....
那么我在这里错过了什么?xattr_supported() 不应该至少返回一个布尔值,指示文件系统是否支持扩展属性?或者,有没有其他方法可以将随机数据写入纯文本文件而不更改其内容?
提前致谢。
linux - 如何在 NFS 上使用扩展文件属性?
我有一个NFS_Server - NFS_Client系统。我的客户端安装到 NFS_Server目录。我想使用扩展文件属性 (xattr)通过 NFS_Client 安装目录更改 NFS_Server 目录文件的属性。
当我尝试从客户端设置属性时,它给出了以下答案:
root@ubuntu:/mnt/nfs/var/nfs#setfattr -n user.comment -v "some comment" test.txt
setfattr: nfs.txt:
权限被拒绝
我的问题是:
是否可以通过 NFS 使用扩展文件属性?
如果可能的话,我该怎么做?
更新:
服务器端:
客户端:
谢谢你...
c++ - OSX Mavericks 在 c 程序中获取文件的标签
我需要在 c 程序中获取文件的用户标签。我知道“mdls -name kMDItemUserTags FILENAME”命令可以获取此详细信息。但我需要用c代码来做。有什么方法可以直接获取值,而不是运行这个命令和解析。