ntzm / tusk
PSR-7兼容的PHP tus服务器
0.1.0
2020-01-24 20:18 UTC
Requires
- php: ^7.2
- ext-json: *
- psr/event-dispatcher: ^1.0
- psr/http-message: ^1.0
- webmozart/assert: ^1.6
Requires (Dev)
- aws/aws-sdk-php: ^3.129
- friendsofphp/php-cs-fixer: ^2.16
- mikey179/vfsstream: ^1.6
- phpstan/phpstan: ^0.12.2
- phpstan/phpstan-phpunit: ^0.12.1
- phpstan/phpstan-webmozart-assert: ^0.12.0
- phpunit/phpunit: ^8.5
- slim/psr7: ^1.0
- slim/slim: ^4.3
- vimeo/psalm: ^3.7
- vlucas/phpdotenv: ^4.1
Suggests
- aws/aws-sdk-php: Required to use S3 storage
This package is auto-updated.
Last update: 2024-09-25 06:59:09 UTC
README
PSR-7兼容的tus服务器,适用于PHP
可用的存储驱动程序
S3
在S3中存储文件
$storage = new Tusk\Storage\S3Storage(new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'eu-west-1', ]), 'bucket-name');
有关PHP AWS SDK的更多信息,请参阅文档。
ID生成
默认情况下,文件ID使用RandomHexIdGenerator
创建,这将生成32字符的ID,类似于69ed96b70ab30c8f046e79b74faf481b
。如果您想更改此方式,可以注入一个实现了IdGenerator
的自定义类。
位置生成
文件上传开始时,服务器返回一个客户端可以继续发送数据的URL。默认情况下,这是POST URL加上文件ID。这由RelativeLocationGenerator
处理。
例如,如果POST端点的URL是/files
,文件位置将是files/<id>
。
如果您想更改此设置,可以注入一个实现了LocationGenerator
的自定义类。
事件
Tusk在文件的生命周期中的特定事件发生时会发出事件。您可以使用任何PSR-14兼容的事件调度器实现来挂钩这些事件。
UploadComplete
当文件已完全上传时,会触发Tusk\Event\UploadComplete
。它有一个方法fileId()
,可以调用以获取文件的ID。
兼容性
Tusk与tus 1.0.0及以下扩展兼容