---
title: "File Storage"
url: https://develop.sentry.dev/services/filestore/
---

# File Storage

Sentry provides an abstraction called ‘filestore’ which is used for storing files (such as release artifacts).

The default backend stores files on the local disk in `/tmp/sentry-files` which is not suitable for production use.

## [File System Backend](https://develop.sentry.dev/services/filestore.md#file-system-backend)

```yaml
filestore.backend: "filesystem"
filestore.options:
  location: "/tmp/sentry-files"
```

## [Google Cloud Storage Backend](https://develop.sentry.dev/services/filestore.md#google-cloud-storage-backend)

In addition to the configuration below, you’ll need to make sure the shell environment has the variable `GOOGLE_APPLICATION_CREDENTIALS` set. For more information, refer to the [Google Cloud documentation for setting up authentication](https://cloud.google.com/storage/docs/reference/libraries#setting_up_authentication).

```yaml
filestore.backend: "gcs"
filestore.options:
  bucket_name: "..."
```

## [Amazon S3 Backend](https://develop.sentry.dev/services/filestore.md#amazon-s3-backend)

The S3 storage backend supports authentication either by using an access key or by IAM instance roles. When using the latter, omit `access_key` and `secret_key`. By default, S3 objects are created with the `public-read` ACL which means that the account/role used must have the `PutObjectAcl` permission in addition to `PutObject`, along with `GetObject` and `DeleteObject`. If you don't want your uploaded files to be publicly-accessible you can set `default_acl` to `private`.

```yaml
filestore.backend: "s3"
filestore.options:
  access_key: "..."
  secret_key: "..."
  bucket_name: "..."
  default_acl: "..."
```

## [MinIO S3 Backend](https://develop.sentry.dev/services/filestore.md#minio-s3-backend)

```yaml
filestore.backend: "s3"
filestore.options:
  access_key: "..."
  secret_key: "..."
  bucket_name: "..."
  endpoint_url: "https://minio.example.org/"
```
