Node.js module for manipulating extended attributes.
There are already some libraries for this, why use fs-xattr?
- Very useful errors
- No limits on value size
- Clean and easy api
- Proper asynchronous implementation
npm install --save fs-xattrimport { getAttribute, setAttribute } from 'fs-xattr'
await setAttribute('index.js', 'user.linusu.test', 'Hello, World!')
console.log(await getAttribute('index.js', 'user.linusu.test'))
//=> Hello, World!path(string, required)attr(string, required)- returns
Promise<Buffer>- aPromisethat will resolve with the value of the attribute.
Get extended attribute attr from file at path.
path(string, required)attr(string, required)- returns
Buffer
Synchronous version of getAttribute.
path(string, required)attr(string, required)value(Bufferorstring, required)- returns
Promise<void>- aPromisethat will resolve when the value has been set.
Set extended attribute attr to value on file at path.
path(string, required)attr(string, required)value(Bufferorstring, required)
Synchronous version of setAttribute.
path(string, required)attr(string, required)- returns
Promise<void>- aPromisethat will resolve when the value has been removed.
Remove extended attribute attr on file at path.
path(string, required)attr(string, required)
Synchronous version of removeAttribute.
path(string, required)- returns
Promise<Array<string>>- aPromisethat will resolve with an array of strings, e.g.['user.linusu.test', 'com.apple.FinderInfo'].
List all attributes on file at path.
path(string, required)- returns
Array<string>
Synchronous version of listAttributes.
For the large majority of Linux filesystem there are currently 4 supported namespaces (user, trusted, security, and system) you can use. Some other systems, like FreeBSD have only 2 (user and system).
Be sure to use a namespace that is appropriate for your supported platforms. You can read more about this in the "Extended File Attributes" Wikipedia article.
Using a namespace like com.linusu.test would work on macOS, but would give you the following error on Debian Linux:
Error [ENOTSUP]: The file system does not support extended attributes or has the feature disabled.