hedii/laravel-ovh-swift-storage

直接用于Laravel的Ovh Swift存储

4.2.0 2021-04-08 07:46 UTC

This package is auto-updated.

Last update: 2024-09-11 15:44:23 UTC


README

Build Status Total Downloads License Latest Stable Version

Laravel Ovh Swift Storage

直接用于Laravel 6.0+的Ovh Swift存储

目录

安装

通过 composer 安装

composer require hedii/laravel-ovh-swift-storage

编辑 config/filesystems.php 以添加新的 ovh-swift 磁盘

return [

    'disks' => [
        /* ... */

        'ovh-swift' => [
            'driver' => 'ovh-swift',
            'authUrl' => env('OVH_SWIFT_OPENSTACK_AUTH_URL', 'https://auth.cloud.ovh.net/v3/'),
            'region' => env('OVH_SWIFT_OPENSTACK_REGION'),
            'projectId' => env('OVH_SWIFT_OPENSTACK_PROJECT_ID'),
            'containerName' => env('OVH_SWIFT_CONTAINER_NAME'),
            'prefix' => env('OVH_SWIFT_PREFIX'),
            'username' => env('OVH_SWIFT_OPENSTACK_USERNAME'),
            'password' => env('OVH_SWIFT_OPENSTACK_PASSWORD'),
            'visibility' => env('OVH_SWIFT_VISIBILITY', 'public'),
            'publicUrl' => env('OVH_SWIFT_PUBLIC_URL'),
            'urlKey' => env('OVH_SWIFT_URL_KEY'),
            'requestOptions' => [],
        ],
    
    ],

];

编辑 .env 以添加所需的环境变量

OVH_SWIFT_OPENSTACK_REGION=GRA
OVH_SWIFT_OPENSTACK_PROJECT_ID=xxxxxxxxxxxxxxxxxxx
OVH_SWIFT_CONTAINER_NAME=xxxxxxxxxxxxxxxxxxx
OVH_SWIFT_OPENSTACK_USERNAME=xxxxxxxxxxxxxxxxxxx
OVH_SWIFT_OPENSTACK_PASSWORD=xxxxxxxxxxxxxxxxxxx

用法

修改Laravel文件系统配置和环境变量后,您可以使用新的Ovh Swift存储磁盘 作为任何Laravel存储磁盘

私有容器

默认情况下,此包假设您正在使用公共对象存储容器。

如果您想使用带临时URL的私有容器,您必须配置一个 临时URL密钥 并将可见性设置为 private

OVH_SWIFT_OPENSTACK_REGION=GRA
OVH_SWIFT_OPENSTACK_PROJECT_ID=xxxxxxxxxxxxxxxxxxx
OVH_SWIFT_CONTAINER_NAME=xxxxxxxxxxxxxxxxxxx
OVH_SWIFT_OPENSTACK_USERNAME=xxxxxxxxxxxxxxxxxxx
OVH_SWIFT_OPENSTACK_PASSWORD=xxxxxxxxxxxxxxxxxxx
OVH_SWIFT_VISIBILITY=private
OVH_SWIFT_URL_KEY=xxxxxxxxxxxxxxxxxxx

请注意,您将无法使用私有容器检索常规URL,只能检索临时URL。

请求选项

如果您想使用如 timeoutconnect_timeout 或其他任何有效选项的HTTP 请求选项,请将它们放入驱动器配置中。

return [

    'disks' => [
        /* ... */

        'ovh-swift' => [
            /* ... */
            'requestOptions' => [
                'timeout' => 3.14,
                'connect_timeout' => 3.14,
            ],
        ],
    
    ],

];

示例

use Illuminate\Support\Facades\Storage;

Storage::disk('ovh-swift')->put('avatars/1', $fileContents);

$url = Storage::url('avatars/1');

// if using private containers:
$temporaryUrl = Storage::temporaryUrl('avatars/1', now()->addMinute());

测试

如果您想测试此包,您必须创建一个新Openstack用户和两个新的Ovh对象存储容器

  • 一个名为 test 的公共容器
  • 一个名为 test-private 的私有容器

完成后,将 phpunit.xml.dist 复制到 phpunit.xml 并更新环境变量。

请注意,测试套件将在每次测试后删除容器中的所有文件。不要在生产容器上测试!

要启动测试套件,请运行此命令

composer test

许可证

laravel-ovh-swift-storage是在MIT许可证下发布的。有关详细信息,请参阅附带LICENSE文件。