# Fil v0.1.0 - Table of Contents > Fil is a pluggable file storage abstraction for Elixir. ## Guides - [Installation](installation.md) - [Plugins](plugins.md) - [Changelog](changelog.md) ## Modules - [Fil](Fil.md): Fil is a pluggable file storage abstraction for Elixir. - [Fil.Disk](Fil.Disk.md): A disk is a plain value that describes where files are stored. - [Fil.Op](Fil.Op.md): One call to a `Fil` function, as plugins see it. - [Fil.Ref](Fil.Ref.md): A reference to a file on a disk: a `Fil.Disk` plus a path. It can point to a file that doesn't exist yet, such as the destination of a copy. - [Fil.Stat](Fil.Stat.md): Metadata about a file or directory. - Adapters - [Fil.Adapter](Fil.Adapter.md): The contract every adapter implements. - [Fil.Adapter.Local](Fil.Adapter.Local.md): The local filesystem, jailed under a root directory. - [Fil.Adapter.Memory](Fil.Adapter.Memory.md): Files in memory, in a store that belongs to a process. It's meant for tests. - [Fil.Adapter.S3](Fil.Adapter.S3.md): Amazon S3 and services that implement its API, such as [MinIO](https://github.com/minio/minio), [Adobe S3Mock](https://github.com/adobe/S3Mock), [Cloudflare R2](https://developers.cloudflare.com/r2/), [Backblaze B2](https://www.backblaze.com/cloud-storage), [Tigris](https://www.tigrisdata.com) and [Ceph](https://ceph.io). - Plugins - [Fil.Plugin.ContentType](Fil.Plugin.ContentType.md): Sets the content type of a write from the file extension. - [Fil.Plugin.URL](Fil.Plugin.URL.md): Builds URLs for any disk, served by `Fil.Plug` from your application. - Integrations - [Fil.Plug](Fil.Plug.md): Serves the files of a disk over HTTP: the URLs `Fil.Plugin.URL` signs, or with `public: true`, every file. - Errors - [Fil.AccessDeniedError](Fil.AccessDeniedError.md): The storage refused access. Fix the permissions or the credentials. - [Fil.AlreadyExistsError](Fil.AlreadyExistsError.md): A write with `if_exists: :error` found a file already there. Read that file and decide again. - [Fil.ChecksumMismatchError](Fil.ChecksumMismatchError.md): The content doesn't match its checksum. Upload or download it again. - [Fil.ConfigurationError](Fil.ConfigurationError.md): The disk's options don't match the storage. Fix the disk's options. - [Fil.InvalidRequestError](Fil.InvalidRequestError.md): The path or the content can't be used here. Use another path or smaller content. - [Fil.NotFoundError](Fil.NotFoundError.md): The file doesn't exist. Treat it as missing. - [Fil.StorageFullError](Fil.StorageFullError.md): There's no space left, or a quota is used up. Free up space or raise the quota. - [Fil.UnavailableError](Fil.UnavailableError.md): The storage didn't answer, or asked to wait. Try again later. - [Fil.UnknownError](Fil.UnknownError.md): The storage reported something no other error describes. Log it and fail. - [Fil.UnsupportedError](Fil.UnsupportedError.md): The disk can't do this operation. Attach a plugin or use another disk.