File Storage
Docs menu

Backends & cloud adapters

BYO storage always goes through your server. Use the HTTP or S3-proxy contract; optional helpers wrap the same HttpFileStore for Azure Blob and GCS.

HTTP contract

Implement list / upload / delete / rename on your origin and pass http: { baseUrl } to FileStorageSDK.mount. Full routes are documented in the integration guide.

PHP / Laravel / Symfony

There is no separate PHP SDK binary. Mount the CDN JS from Blade/Twig, then proxy storage with a thin Laravel or Symfony controller that speaks the HTTP contract (or the S3 proxy if you already use the AWS SDK).

<!-- Blade / Twig -->
<script src="https://cdn.filestorage.io/file-storage.min.js"></script>
<script>
  FileStorageSDK.mount({
    el: '#fm',
    apiKey: '{{ $apiKey }}',
    http: { baseUrl: '{{ url('/filestorage-proxy') }}' },
  })
</script>

Azure Blob & Google Cloud Storage

Keep cloud credentials on the server. From the browser use the helpers (aliases of HttpFileStore):

FileStorageSDK.mount({
  el: '#fm',
  apiKey: 'fs_live_…',
  store: FileStorageSDK.createAzureBlobStore({ baseUrl: 'https://your-app/azure-proxy' }),
})
// or FileStorageSDK.createGcsStore({ baseUrl: 'https://your-app/gcs-proxy' })
// GCS with S3 interoperability can also use S3ProxyFileStore.

Drupal & Joomla

First-party CMS packages remain on the roadmap. Until then, embed the CDN script in a custom module/block the same way as any HTML page, and point http or s3.proxyBaseUrl at your backend.