impratick/laravel-azure-blob-storage

支持前缀的Azure Blob Storage包装器,适用于Laravel框架

1.0.0 2020-05-07 11:45 UTC

README

Laravel Azure Blob Storage包装器,支持前缀,并且易于与Spatie的媒体库集成,适用于Flysystem Azure Blob Storage

包含内容

安装

您可以通过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)。有关更多信息,请参阅许可证文件