DataAccessor that uses the file system to store documents as files and containers as folders.
Helper function to add file system related metadata.
metadata object to add to
Stats of the file/directory corresponding to the resource.
Only binary data can be directly stored as files so will error on non-binary data.
Removes the corresponding file/folder (and metadata file).
Returns metadata for all resources in the requested container. This should not be all metadata of those resources (but it can be), but instead the main metadata you want to show in situations where all these resources are presented simultaneously. Generally this would be metadata that is present for all of these resources, such as resource type or last modified date.
It can be safely assumed that the incoming identifier will always correspond to a container.
Identifier of the parent container.
Will return data stream directly to the file corresponding to the resource. Will throw NotFoundHttpError if the input is a container.
Will return corresponding metadata by reading the metadata file (if it exists) and adding file system specific metadata elements.
Reads the metadata from the corresponding metadata file. Returns an empty array if there is no metadata file.
Identifier of the resource (not the metadata!).
Gets the Stats object corresponding to the given file path, resolving symbolic links.
NotFoundHttpError If the file/folder doesn't exist.
File path to get info from.
Verifies if there already is a file corresponding to the given resource. If yes, that file is removed if it does not match the path given in the input ResourceLink. This can happen if the content-type differs from the one that was stored.
ResourceLink corresponding to the new resource data.
Creates corresponding folder if necessary and writes metadata to metadata file if necessary.
Helper function without extra validation checking to create a data file.
The filepath of the file to be created.
The data to be put in the file.
Writes the given data as a file (and potential metadata as additional file). The metadata file will be written first and will be deleted if something goes wrong writing the actual data.