# Overview

File processing apps allow you to add support for new custom file formats and customize processing for supported file formats.

[Custom File Format](/app-project-module/file-processor/custom-file-format/)
  [Translation Alignment](/app-project-module/file-processor/translation-alignment/)
  [File Pre-Import](/app-project-module/file-processor/pre-import/)
  [File Post-Import](/app-project-module/file-processor/post-import/)
  [File Pre-Export](/app-project-module/file-processor/pre-export/)
  [File Post-Export](/app-project-module/file-processor/post-export/)
## Using External Storage

By default, File Processor apps use the `filesFolder` as a temporary folder to store large responses. For better scalability and serverless deployments, use the global `fileStore` configuration:

```js title="index.js"
configuration.fileStore = {
  async storeFile(content) {
    // Store file and return reference
    return fileReference;
  },
  async getFile(fileRef) {
    // Retrieve file by reference
    return fileBuffer;
  },
  async deleteFile(fileRef) {
    // Delete file by reference
  }
};
```

See [External File Storage](/app-project-module/file-storage/) for detailed configuration.

### Per-Module Configuration

You can also override storage per file processor module:

```js "{file-process-type}" title="index.js"
configuration.{file-process-type}[0].storeFile = async (content) => {
  // logic to store file, e.g. put it to AWS S3
  return '<url-to-download>';
};
```

For AWS Lambda, set `AWS_REGION` and `AWS_TMP_BUCKET_NAME` environment variables, or configure:

```js title="index.js"
configuration.awsConfig = {
  tmpBucketName: 'tmpBucketName',
  region: 'region'
};
```

**Note:** If you're using AWS S3 for file storage, you need to install the AWS SDK packages manually:
  <PackageManagers pkg="@aws-sdk/client-s3 @aws-sdk/s3-request-presigner" />