Uploading File
DreamFactory 2 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
Contents
- 1 Provisioning a Storage Service
- 2 API Endpoints
- 3 Example - Upload a JPEG image to a directory called images using storage service called 'files'
- 4 Example - Upload a zip file to a directory called documents using storage service called 'files' and extract it.
- 5 Example - Delete existing directory content before uploading a zip file and extracting it.
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'.
API Endpoints
Uploading a binary file
Uploading a file using URL:
POST http://{url}/api/v2/{storage_service_name}?url={remote_url}
Uploading a file using form post:
POST http://{url}/api/v2/{storage_service_name} Request header: ... Content-Type: multipart/form-data; ... Request payload: -- <file content> --
Uploading a zip file and extracting its content
Uploading a zip file using URL:
POST http://{url}/api/v2/{storage_service_name}?url={remote_url}&extract=true
Uploading a zip file using form post:
POST http://{url}/api/v2/{storage_service_name}?extract=true Request header: ... Content-Type: multipart/form-data; ... Request payload: -- <file content> --
Delete existing folder content before uploading a zip file and extracting its content
Uploading a zip file using URL
POST http://{url}/api/v2/{storage_service_name}?url={remote_url}&extract=true&clean=true
Uploading a zip file using form post
POST http://{url}/api/v2/{storage_service_name}?extract=true&clean=true Request header: ... Content-Type: multipart/form-data; ... Request payload: -- <file content> --
Example - Upload a JPEG image to a directory called images using storage service called 'files'
- Storage service: files
- Destination directory: images/
- JPEG image URL: http://example.com/images/profile_picture.jpg
- Request URL:
POST http://foo.com/api/v2/files/images/?url=http://example.com/images/profile_picture.jpg
Example - Upload a zip file to a directory called documents using storage service called 'files' and extract it.
- Storage service: files
- Destination directory: documents/
- Zip file URL: http://example.com/docs.zip
- Request URL:
POST http://foo.com/api/v2/files/documents/?url=http://example.com/docs.zip&extract=true
Example - Delete existing directory content before uploading a zip file and extracting it.
- Storage service: files
- Destination directory: documents/
- Zip file URL: http://example.com/docs.zip
- Request URL:
POST http://foo.com/api/v2/files/images/?url=http://example.com/docs.zip&extract=true&clean=true