azure-oss/storage

Azure Blob Storage PHP SDK

Maintainers

Package info

github.com/Azure-OSS/azure-storage-php-blob

pkg:composer/azure-oss/storage

Statistics

Installs: 926 741

Dependents: 3

Suggesters: 0

Stars: 36

1.9.0 2026-03-15 06:57 UTC

This package is auto-updated.

Last update: 2026-03-15 07:47:21 UTC


README

Latest Version on Packagist Packagist Downloads

Community-driven PHP SDKs for Azure, because Microsoft won't.

In November 2023, Microsoft officially archived their Azure SDK for PHP and stopped maintaining PHP integrations for most Azure services. No migration path, no replacement — just a repository marked read-only.

We picked up where they left off.

Screenshot

Our other packages:

Features

  • Authentication:
    • Connection strings (access keys)
    • Shared key credentials
    • Shared access signatures (SAS) for delegated, time-limited access
    • Microsoft Entra ID (token-based authentication) via azure-oss/azure-identity
  • Local development:
    • Supports the Azurite emulator
  • Containers:
    • Create, delete, and list (including filtering by prefix)
    • Configure public access when creating a container
    • Read properties and manage metadata
  • Blobs:
    • Upload from strings or streams, with transfer tuning for large uploads
    • Set common HTTP headers (content type, cache control, etc.)
    • Download via streaming and access response properties
    • Copy blobs (synchronous and asynchronous)
    • List blobs (flat, by prefix, and hierarchical listing) with page sizing
    • Delete blobs
    • Read properties and manage metadata
    • Blob index tags: set/get tags and query blobs by tags (account or container scope)
  • SAS:
    • Generate SAS for blobs, containers, and the account (when using credentials that can sign SAS)

Documentation

You can read the documentation here.

Install

composer require azure-oss/storage

Quickstart

<?php

use AzureOss\Storage\Blob\BlobServiceClient;
use AzureOss\Storage\Blob\Models\UploadBlobOptions;

$service = BlobServiceClient::fromConnectionString(
    getenv('AZURE_STORAGE_CONNECTION_STRING')
);

$container = $service->getContainerClient('quickstart');
$container->createIfNotExists();

$blob = $container->getBlobClient('hello.txt');

$blob->upload(
    'Hello from Azure-OSS',
    new UploadBlobOptions(contentType: 'text/plain')
);

$download = $blob->downloadStreaming();
$content = $download->content->getContents();

echo $content.PHP_EOL; // Hello from Azure-OSS

foreach ($container->getBlobs() as $item) {
    echo $item->name.PHP_EOL;
}

// Optional cleanup
$blob->deleteIfExists();
// $container->deleteIfExists();

License

This project is released under the MIT License. See LICENSE for details.