impratick/laravel-azure-blob-storage
支持前缀的Azure Blob Storage包装器,适用于Laravel框架
1.0.0
2020-05-07 11:45 UTC
Requires
- php: ^7.2
- illuminate/support: ~5.7|~5.8|^6.0
- league/flysystem-azure-blob-storage: ^0.1.6
Requires (Dev)
- larapack/dd: ^1.0
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-09-21 22:48:47 UTC
README
Laravel Azure Blob Storage包装器,支持前缀,并且易于与Spatie的媒体库集成,适用于Flysystem Azure Blob Storage。
包含内容
- Laravel的服务提供器
- 为Laravel的文件存储抽象添加
azure
磁盘,基于Flysystem
- 为Laravel的文件存储抽象添加
- 与Spatie的媒体库集成,提供
AzureBlobUrlGenerator
(https://docs.spatie.be/laravel-medialibrary/v7/advanced-usage/generating-custom-urls)
安装
您可以通过composer安装此包
composer require impratick/laravel-azure-blob-storage
使用方法
服务提供器在Laravel >= 5.5上自动注册。
在config/filesystem.php
中配置您的磁盘
'disks' => [ 'azure' => [ 'driver' => 'azure', 'account' => [ 'name' => env('AZURE_ACCOUNT_NAME'), 'key' => env('AZURE_ACCOUNT_KEY'), ], 'endpoint-suffix' => env('AZURE_ENDPOINT_SUFFIX', 'core.windows.net'), 'container' => env('AZURE_CONTAINER', 'public'), 'prefix' => env('AZURE_BLOB_FOLDER_NAME', null), ] ]
在此处,如果您的文件夹结构自定义,则需要设置prefix
,否则设置为null
- project-storage
- local/folders
- staging/folders
- production/folders
因此,根据上述场景,AZURE_CONTAINER
的值将是project-storage
,而AZURE_BLOB_FOLDER_NAME
将根据环境(local/staging/production)
设置。
与媒体库集成
安装并配置媒体库。
将以下内容添加到config/medialibrary.php
'azure' => [ 'domain' => 'https://' . env('AZURE_ACCOUNT_NAME') . '.blob.' . env('AZURE_ENDPOINT_SUFFIX') . '/' . env('AZURE_CONTAINER') . (env('AZURE_BLOB_FOLDER_NAME') ? '/' . env('AZURE_BLOB_FOLDER_NAME') : ''), ], /* * When urls to files get generated, this class will be called. Leave empty * if your files are stored locally above the site root or on s3. */ 'url_generator' => (env('MEDIA_DISK', 'public') == 'azure' ? Impratick\ExtendedAzureBlobStorage\MediaLibrary\UrlGenerator\AzureBlobUrlGenerator::class : null),
变更日志
请查阅CHANGELOG获取更多信息。
安全性
如果您发现任何安全问题,请随时通过padia.pratik94@gmail.com报告。
鸣谢
此包基于Spatie的PHP包骨架存储库创建。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。