hedii / laravel-ovh-swift-storage
直接用于Laravel的Ovh Swift存储
4.2.0
2021-04-08 07:46 UTC
Requires
- php: ^7.4|^8.0
- laravel/framework: ^8.12
- nimbusoft/flysystem-openstack-swift: ^0.3.4
Requires (Dev)
- orchestra/testbench: ^6.0
README
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。
请求选项
如果您想使用如 timeout
、connect_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文件。