Skip to main content

File Services Overview

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

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)

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

ServiceTypeDocumentation
Local File StorageLocalLocal Storage Guide
SFTPRemoteSFTP Guide
FTPRemoteStandard FTP protocol
WebDAVRemoteWebDAV protocol support

Commercial License Required

These file storage connectors require a DreamFactory commercial license:

ServiceTypeNotes
AWS S3CloudS3 Guide
Azure Blob StorageCloudMicrosoft Azure storage
Google Cloud StorageCloudGCS bucket access
OpenStack Object StorageCloudSwift-compatible storage
Rackspace Cloud FilesCloudRackspace object storage
DropboxCloudOAuth-based access
BoxCloudEnterprise file sharing
OneDriveCloudMicrosoft 365 integration
SharePointCloudMicrosoft SharePoint libraries
GridFSDatabaseMongoDB file storage
Licensing

For commercial file service connector licensing, contact DreamFactory Sales or visit the pricing page.


Common Features Across All File Services

Regardless of which storage backend you connect, DreamFactory provides:

Auto-Generated REST Endpoints

EndpointMethodsDescription
/{service_name}/GETList root directory contents
/{service_name}/{folder_path}/GET, POST, PATCH, DELETEFolder operations
/{service_name}/{file_path}GET, POST, PUT, DELETEFile 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

  • 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

By Use Case

Use CaseRecommended Service
Development/testingLocal File Storage
Application assets in productionAWS S3, Azure Blob, GCS
Legacy system integrationSFTP, FTP
Enterprise document managementSharePoint, Box
User file uploadsS3, Azure Blob (with pre-signed URLs)
MongoDB-backed applicationsGridFS

By Cloud Provider

Cloud ProviderNative ServiceDreamFactory Connector
AWSS3AWS S3
Google CloudCloud StorageGoogle Cloud Storage
Microsoft AzureBlob StorageAzure Blob Storage
Self-hostedLocal/SFTPLocal File Storage, SFTP

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

  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

All file services share these common configuration fields:

FieldTypeDescription
namestringService name (used in API URL)
labelstringDisplay name in admin console
descriptionstringService description
is_activebooleanEnable/disable the service
cache_enabledbooleanEnable response caching
cache_ttlintegerCache time-to-live in seconds

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


Common API Examples

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

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

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

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

Common Errors

Error CodeMessageCauseSolution
400Bad RequestInvalid path or parametersCheck path format and parameter values
401UnauthorizedMissing or invalid API keyVerify API key in request header
403ForbiddenInsufficient permissionsCheck role permissions for the path/operation
404Not FoundFile or folder does not existVerify the path exists
409ConflictFile already exists (on create)Use PUT to overwrite or delete first
413Payload Too LargeFile exceeds size limitCheck server upload limits
503Service UnavailableStorage backend unreachableVerify backend connectivity and credentials

Next Steps

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