pub struct LocalFileSystem { /* private fields */ }
Expand description

Local filesystem storage providing an ObjectStore interface to files on local disk. Can optionally be created with a directory prefix

Path Semantics

This implementation follows the file URI scheme outlined in RFC 3986. In particular paths are delimited by /

Tokio Compatibility

Tokio discourages performing blocking IO on a tokio worker thread, however, no major operating systems have stable async file APIs. Therefore if called from a tokio context, this will use tokio::runtime::Handle::spawn_blocking to dispatch IO to a blocking thread pool, much like tokio::fs does under-the-hood.

If not called from a tokio context, this will perform IO on the current thread with no additional complexity or overheads

LocalFileSystem will follow symlinks as normal, however, it is worth noting:

  • Broken symlinks will be silently ignored by listing operations
  • No effort is made to prevent breaking symlinks when deleting files
  • Symlinks that resolve to paths outside the root will be followed
  • Mutating a file through one or more symlinks will mutate the underlying file
  • Deleting a path that resolves to a symlink will only delete the symlink

Implementations

Create new filesystem storage with no prefix

Create new filesystem storage with prefix applied to all paths

Returns an error if the path does not exist

Trait Implementations

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Formats the value using the given formatter. Read more

Save the provided bytes to the specified location.

Get a multi-part upload that allows writing data in chunks Read more

Cleanup an aborted upload. Read more

Return the bytes that are stored at the specified location.

Return the bytes that are stored at the specified location in the given byte range Read more

Return the bytes that are stored at the specified location in the given byte ranges Read more

Return the metadata for the specified location

Delete the object at the specified location.

List all the objects with the given prefix. Read more

List objects with the given prefix and an implementation specific delimiter. Returns common prefixes (directories) in addition to object metadata. Read more

Copy an object from one path to another in the same object store. Read more

Move an object from one path to another in the same object store. Read more

Copy an object from one path to another, only if destination is empty. Read more

Move an object from one path to another in the same object store. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more