---
title: "File Services Overview | DreamFactory Docs"
source: "https://docs.dreamfactory.com/api-generation-and-connections/api-types/file-services/file-services-overview"
canonical_url: "https://docs.dreamfactory.com/api-generation-and-connections/api-types/file-services/file-services-overview"
converted_at: "2026-04-10T13:05:24.726Z"
format: "markdown"
converted_by: "html-to-md-ai"
---
DreamFactory auto-generates secure REST APIs for file storage systems. Connect any supported storage backend and instantly get endpoints for uploading, downloading, listing, and managing files with role-based access control.

---

## Supported File Services[​](#supported-file-services)

DreamFactory supports local storage, cloud providers, and remote file servers. Some connectors are included in the open-source package, while others require a commercial license.

### Open Source (Included)[​](#open-source-included)

These file storage connectors are included in DreamFactory OSS and all commercial editions:

ServiceTypeDocumentation**Local File Storage**Local[Local Storage Guide](/api-generation-and-connections/api-types/file-services/local-file-storage)**SFTP**Remote[SFTP Guide](/api-generation-and-connections/api-types/file/creating-an-sftp-rest-api)**FTP**RemoteStandard FTP protocol**WebDAV**RemoteWebDAV protocol support

### Commercial License Required[​](#commercial-license-required)

These file storage connectors require a DreamFactory commercial license:

ServiceTypeNotes**AWS S3**Cloud[S3 Guide](/api-generation-and-connections/api-types/file-services/aws-s3)**Azure Blob Storage**CloudMicrosoft Azure storage**Google Cloud Storage**CloudGCS bucket access**OpenStack Object Storage**CloudSwift-compatible storage**Rackspace Cloud Files**CloudRackspace object storage**Dropbox**CloudOAuth-based access**Box**CloudEnterprise file sharing**OneDrive**CloudMicrosoft 365 integration**SharePoint**CloudMicrosoft SharePoint libraries**GridFS**DatabaseMongoDB file storage

LicensingFor commercial file service connector licensing, contact [DreamFactory Sales](https://www.dreamfactory.com/contact) or visit the [pricing page](https://www.dreamfactory.com/pricing).

---

## Common Features Across All File Services[​](#common-features-across-all-file-services)

Regardless of which storage backend you connect, DreamFactory provides:

### Auto-Generated REST Endpoints[​](#auto-generated-rest-endpoints)

EndpointMethodsDescription`/{service_name}/``GET`List root directory contents`/{service_name}/{folder_path}/``GET, POST, PATCH, DELETE`Folder operations`/{service_name}/{file_path}``GET, POST, PUT, DELETE`File operations

### Standard Operations[​](#standard-operations)

- **List**: Retrieve folder contents with metadata

- **Upload**: Create or replace files via POST/PUT

- **Download**: Retrieve file contents via GET

- **Delete**: Remove files or folders

- **Move/Copy**: Relocate files within the storage

- **Metadata**: Access file properties (size, modified date, content type)

### Security Features[​](#security-features)

- **API Key Authentication**: Required for all endpoint access

- **Role-Based Access Control**: Folder and operation-level permissions

- **Rate Limiting**: Configurable throttling per user or role

- **Audit Logging**: Track all file operations

---

## Choosing the Right File Service[​](#choosing-the-right-file-service)

### By Use Case[​](#by-use-case)

Use CaseRecommended ServiceDevelopment/testingLocal File StorageApplication assets in productionAWS S3, Azure Blob, GCSLegacy system integrationSFTP, FTPEnterprise document managementSharePoint, BoxUser file uploadsS3, Azure Blob (with pre-signed URLs)MongoDB-backed applicationsGridFS

### By Cloud Provider[​](#by-cloud-provider)

Cloud ProviderNative ServiceDreamFactory ConnectorAWSS3AWS S3Google CloudCloud StorageGoogle Cloud StorageMicrosoft AzureBlob StorageAzure Blob StorageSelf-hostedLocal/SFTPLocal File Storage, SFTP

---

## File Service Architecture[​](#file-service-architecture)

```
┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐│   API Client    │────▶│   DreamFactory   │────▶│  File Storage   ││  (App/Service)  │◀────│   (REST API)     │◀────│    Backend      │└─────────────────┘     └──────────────────┘     └─────────────────┘        │                        │                        │    HTTP/HTTPS              Connector              Native Protocol    + API Key               (S3 SDK,               (S3 API, SFTP,    + JWT (optional)         Azure SDK, etc.)       local filesystem)
```

### Key Architectural Points[​](#key-architectural-points)

1. **DreamFactory acts as a secure proxy** - Storage credentials are never exposed to API clients

2. **Unified API interface** - Same REST patterns regardless of storage backend

3. **Streaming support** - Large files are streamed, not buffered in memory

4. **Content type handling** - Automatic MIME type detection and headers

---

## Configuration Options[​](#configuration-options)

All file services share these common configuration fields:

FieldTypeDescription`name`stringService name (used in API URL)`label`stringDisplay name in admin console`description`stringService description`is_active`booleanEnable/disable the service`cache_enabled`booleanEnable response caching`cache_ttl`integerCache time-to-live in seconds

Service-specific configuration options are documented in each service guide.

---

## Common API Examples[​](#common-api-examples)

### List Directory Contents[​](#list-directory-contents)

```
curl -X GET "https://example.com/api/v2/{service_name}/" \  -H "X-DreamFactory-API-Key: YOUR_API_KEY"
```

Response:

```
{  "resource": [    {      "path": "documents/",      "type": "folder",      "name": "documents",      "last_modified": "2026-02-10T14:30:00Z"    },    {      "path": "readme.txt",      "type": "file",      "name": "readme.txt",      "content_type": "text/plain",      "content_length": 1024,      "last_modified": "2026-02-09T10:15:00Z"    }  ]}
```

### Upload a File[​](#upload-a-file)

```
curl -X POST "https://example.com/api/v2/{service_name}/documents/report.pdf" \  -H "X-DreamFactory-API-Key: YOUR_API_KEY" \  -H "Content-Type: application/pdf" \  --data-binary @report.pdf
```

### Download a File[​](#download-a-file)

```
curl -X GET "https://example.com/api/v2/{service_name}/documents/report.pdf" \  -H "X-DreamFactory-API-Key: YOUR_API_KEY" \  -o report.pdf
```

### Delete a File[​](#delete-a-file)

```
curl -X DELETE "https://example.com/api/v2/{service_name}/documents/old-report.pdf" \  -H "X-DreamFactory-API-Key: YOUR_API_KEY"
```

---

## Common Errors[​](#common-errors)

Error CodeMessageCauseSolution400Bad RequestInvalid path or parametersCheck path format and parameter values401UnauthorizedMissing or invalid API keyVerify API key in request header403ForbiddenInsufficient permissionsCheck role permissions for the path/operation404Not FoundFile or folder does not existVerify the path exists409ConflictFile already exists (on create)Use PUT to overwrite or delete first413Payload Too LargeFile exceeds size limitCheck server upload limits503Service UnavailableStorage backend unreachableVerify backend connectivity and credentials

---

## Next Steps[​](#next-steps)

- **[Local File Storage](/api-generation-and-connections/api-types/file-services/local-file-storage)**: Store files on the DreamFactory server

- **[AWS S3](/api-generation-and-connections/api-types/file-services/aws-s3)**: Connect to Amazon S3 buckets

- **[SFTP](/api-generation-and-connections/api-types/file/creating-an-sftp-rest-api)**: Connect to remote SFTP servers

For file service-specific questions, consult the individual guides or contact DreamFactory support.