{"id":24594280,"url":"https://github.com/azure-oss/azure-storage-php","last_synced_at":"2026-04-15T17:33:53.389Z","repository":{"id":246703555,"uuid":"821724893","full_name":"Azure-OSS/azure-storage-php","owner":"Azure-OSS","description":"Azure Storage PHP SDK","archived":false,"fork":false,"pushed_at":"2025-03-03T21:09:46.000Z","size":263,"stargazers_count":25,"open_issues_count":2,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-31T15:18:04.194Z","etag":null,"topics":["azure","blob","php","storage"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Azure-OSS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-29T08:58:38.000Z","updated_at":"2025-03-17T12:14:13.000Z","dependencies_parsed_at":"2024-08-06T13:31:12.325Z","dependency_job_id":"2cc3b0c4-eee5-4c2b-ae37-baade21f8549","html_url":"https://github.com/Azure-OSS/azure-storage-php","commit_stats":null,"previous_names":["azure-oss/storage-php"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure-OSS%2Fazure-storage-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure-OSS%2Fazure-storage-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure-OSS%2Fazure-storage-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure-OSS%2Fazure-storage-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Azure-OSS","download_url":"https://codeload.github.com/Azure-OSS/azure-storage-php/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247685628,"owners_count":20979085,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","blob","php","storage"],"created_at":"2025-01-24T11:14:09.611Z","updated_at":"2026-04-15T17:33:53.350Z","avatar_url":"https://github.com/Azure-OSS.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Azure Storage PHP\n\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/azure-oss/storage.svg)](https://packagist.org/packages/azure-oss/storage)\n[![Packagist Downloads](https://img.shields.io/packagist/dm/azure-oss/storage)](https://packagist.org/packages/azure-oss/storage)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/azure-oss/azure-storage-php/tests.yml?branch=main)](https://github.com/azure-oss/azure-storage-php/actions)\n\n\u003e [!TIP]\n\u003e If you’re working with Laravel or Flysystem, check out our dedicated drivers.\n\u003e * [Azure Storage Laravel Adapter](https://github.com/Azure-OSS/azure-storage-php-adapter-laravel)\n\u003e * [Azure Storage Flysystem Adapter](https://github.com/Azure-OSS/azure-storage-php-adapter-flysystem)\n\n## Minimum Requirements\n\n* PHP 8.1 or above\n* Required PHP extensions\n    * curl\n    * json\n\n## Install\n\n```shell\ncomposer require azure-oss/storage\n```\n\n## Quickstart\n\nCreate the BlobServiceClient\n```php\n$blobServiceClient = BlobServiceClient::fromConnectionString(\"\u003cconnection string\u003e\");\n```\n\nCreate a container\n```php\n$containerClient = $blobServiceClient-\u003egetContainerClient('quickstart');\n$containerClient-\u003ecreate();\n```\n\nList containers in a storage account\n```php\n$containers = $blobServiceClient-\u003egetBlobContainers();\n```\n\nUpload a blob to a container\n```php\n$blobClient = $containerClient-\u003egetBlobClient(\"hello.txt\");\n$blobClient-\u003eupload(\"world!\");\n\n// or using streams\n$file = fopen('hugefile.txt', 'r');\n$blobClient-\u003eupload($file);\n```\n\nList blobs in a container\n```php\n$blobs = $containerClient-\u003egetBlobs();\n\n// or with a prefix\n$blobs = $containerClient-\u003egetBlobs('some/virtual/directory');\n\n// and if you want both the blobs and virtual directories\n$blobs = $containerClient-\u003egetBlobsByHierarchy('some/virtual/directory');\n```\n\nDownload a blob\n```php\n$result = $blobClient-\u003edownloadStreaming();\n\n$props = $result-\u003eproperties;\n$content = $result-\u003econtent-\u003egetContents();\n```\n\nCopy a blob\n```php\n$sourceBlobClient = $containerClient-\u003egetBlobClient(\"source.txt\");\n\n// Can also be a different container\n$targetBlobClient = $containerClient-\u003egetBlobClient(\"target.txt\");\n$targetBlobClient-\u003ecopyFromUri($sourceBlobClient-\u003euri);\n```\n\nGenerate a container [Service SAS](https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview#service-sas)\n```php\n$sas = $containerClient-\u003egenerateSasUri(\n    BlobSasBuilder::new()\n        -\u003esetPermissions(new BlobSasPermissions(read: true))\n        -\u003esetExpiresOn((new \\DateTime())-\u003emodify(\"+ 15min\")),\n);\n```\n\nUse a container [Service SAS](https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview#service-sas)\n```php\n$sas = new Uri(\"https://azure-oss.blob.core.windows.net/quickstart?sp=...\u0026st=...\u0026se=...\u0026spr=...\u0026sv=...sr=...\u0026sig=...\")\n$containerClient = new BlobContainerClient($sas);\n```\n\nGenerate a blob [Service SAS](https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview#service-sas)\n```php\n$sas = $blobClient-\u003egenerateSasUri(\n    BlobSasBuilder::new()\n        -\u003esetPermissions(new BlobSasPermissions(read: true))\n        -\u003esetExpiresOn((new \\DateTime())-\u003emodify(\"+ 15min\")),\n);\n```\n\nUse a blob [Service SAS](https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview#service-sas)\n```php\n$sas = new Uri(\"https://azure-oss.blob.core.windows.net/quickstart/file.txt?sp=...\u0026st=...\u0026se=...\u0026spr=...\u0026sv=...sr=...\u0026sig=...\")\n$blobClient = new BlobClient($sas);\n```\n\nGenerate and use an [Account SAS](https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview#account-sas)\n```php\n$sas = $blobServiceClient-\u003egenerateAccountSasUri(\n    AccountSasBuilder::new()\n        -\u003esetPermissions(new AccountSasPermissions(list: true))\n        -\u003esetResourceTypes(new AccountSasResourceTypes(service: true))\n        -\u003esetExpiresOn((new \\DateTime())-\u003emodify(\"+ 15min\")),\n);\n\n$sasServiceClient = new BlobServiceClient($sas);\n```\n\nCreate a public container\n```php\n$containerClient = $blobServiceClient-\u003egetContainerClient('quickstart-public');\n\n$containerClient-\u003ecreate(\n    new CreateContainerOptions(publicAccessType: PublicAccessType::BLOB)\n);\n```\n\nUse a public container\n```php\n$publicUri = new Uri(\"https://azure-oss.blob.core.windows.net/quickstart-public/file.txt\");\n\n$blobClient = new BlobClient($publicUri);\n```\n\nDelete a container\n```php\n$containerClient-\u003edelete();\n```\n\n## Documentation\n\nFor more information visit the documentation at [azure-oss.github.io](https://azure-oss.github.io).\n\n## Support\n\nDo you need help, do you want to talk to us, or is there anything else?\n\nJoin us at:\n\n* [Github Discussions](https://github.com/Azure-OSS/azure-storage-php/discussions)\n* [Slack](https://join.slack.com/t/azure-oss/shared_invite/zt-2lw5knpon-mqPM_LIuRZUoH02AY8uiYw)\n\n## License\n\nAzure-Storage-PHP is released under the MIT License. See [LICENSE](./LICENSE) for details.\n\n## PHP Version Support Policy\n\nThe maintainers of this package add support for a PHP version following its initial release and drop support for a PHP version once it has reached its end of security support.\n\n## Backward compatibility promise\n\nAzure-Storage-PHP is using Semver. This means that versions are tagged with MAJOR.MINOR.PATCH. Only a new major version will be allowed to break backward compatibility (BC).\n\nClasses marked as @experimental or @internal are not included in our backward compatibility promise. You are also not guaranteed that the value returned from a method is always the same. You are guaranteed that the data type will not change.\n\nPHP 8 introduced named arguments, which increased the cost and reduces flexibility for package maintainers. The names of the arguments for methods in the library are not included in our BC promise.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazure-oss%2Fazure-storage-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazure-oss%2Fazure-storage-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazure-oss%2Fazure-storage-php/lists"}