quioteframework/filesystem-azure

Azure Blob Storage filesystem adapter built on the AzureBlobClient from quioteframework/cloud-azure. Framework-agnostic: depends only on cloud-azure, so it is usable outside a Quiote application too. Quiote\Filesystem\Azure\AzureFilesystemAdapter/AzureFilesystemPlugin additionally implement Quiote's

Maintainers

Package info

github.com/quioteframework/filesystem-azure

Issues

pkg:composer/quioteframework/filesystem-azure

Transparency log

Statistics

Installs: 0

Dependents: 1

Suggesters: 1

Stars: 0

v4.0.0 2026-08-09 08:25 UTC

This package is auto-updated.

Last update: 2026-08-20 06:40:53 UTC


README

Azure Blob Storage filesystem adapter for Quiote: a Quiote\Filesystem\ListableFilesystemInterface implementation for Quiote\Filesystem\FilesystemManager, built on the AzureBlobClient from quioteframework/cloud-azure (a hand-rolled REST client, not the official SDK).

read()/write()/delete()/exists()/size()/lastModified()/listContents() are all supported, listContents() pages List Blobs internally and returns one flat, sorted list.

Install

composer require quioteframework/filesystem-azure

Use

$client = new \Quiote\Storage\Azure\AzureBlobClient(
    httpClient: $psr18Client,
    accountName: getenv('AZURE_STORAGE_ACCOUNT'),
    credential: new \Quiote\Storage\Azure\SharedKeyCredential(getenv('AZURE_STORAGE_KEY')),
);

$adapter = new \Quiote\Filesystem\Azure\AzureFilesystemAdapter($client, container: 'my-app-files');
$adapter->write('reports/q1.csv', $csv);
$adapter->read('reports/q1.csv');
$adapter->listContents('reports');

Or, via a container with AzureFilesystemPlugin registered and filesystem.disks.azure.* configured, resolve Quiote\Filesystem\FilesystemManager and call ->disk('azure'). filesystem.disks.azure.auth (shared_key, workload_identity, cli or chain, see quioteframework/cloud-azure's README) picks how requests are authorized; account_key is only read for shared_key.

License

MIT. See LICENSE.