Downloading File

From DreamFactory
Jump to: navigation, search
DreamFactoryTutorialsDownloading File

DreamFactory allows you to expose various storage services as API Endpoints. The following storage services are currently supported:

  • Local Storage (configurable to use local file system, S3, Azure, or Rackspace)
  • AWS S3
  • Azure Blob
  • OpenStack Object Storage
  • Rackspace Cloud Files

Provisioning a Storage Service

All DreamFactory instances come pre-configured with a 'Local Storage' service named 'files'. You can find this service on the admin console, under the services tab. You can also provision as many other storage services as you like using the admin console.

Log in to the admin console and select the 'Services' tab. Click on the 'Create' button from the left menu. On the service creation form, select your storage type from the 'Service Type' drop down box (File section). Enter a short, one-word, meaningful name for your service as well as a label and description. Depending on which storage type you pick, you will need to enter the service configuration values on the 'Config' tab. Create your storage service after entering all your configuration values. Your storage service is now ready for action.

For this tutorial, we will use the pre-configured storage service - 'files'.

Note: As of DreamFactory 2.3.1, all files downloaded using the file services are downloaded in chunks in order to support large files. The default chunk size is 10MB. You can change the chunk size by changing (and uncommenting) the environment flag DF_FILE_CHUNK_SIZE in the .env file.

API Endpoints

Downloading a binary file

GET http://{url}/api/v2/{storage_service_name}/{folder}/{file}?download=true

Downloading a folder as Zip file

GET http://{url}/api/v2/{storage_service_name}/{folder}/?zip=true

Reading a file

GET http://{url}/api/v2/{storage_service_name}/{folder}/{text_file}

Example - Downloading a binary file

  • Storage service: files
  • Folder: images
  • File: logo.jpg
  • Request URL:
GET http://foo.com/api/v2/files/images/logo.jpg?download=true

Example - Downloading a folder as zip file

  • Storage service: files
  • Folder: images
  • Request URL:
GET http://foo.com/api/v2/files/images/?zip=true

Example - Reading a file

  • Storage service: files
  • Folder: documents
  • File: readme.txt
  • Request URL:
GET http://foo.com/api/v2/files/documents/readme.txt