php tus aws s3
1.0.0
Este proyecto no se mantiene. Utilice el proyecto original ankitpokhrel/tus-php para garantizar actualizaciones periódicas. A continuación se incluyen algunas notas sobre el uso del proyecto con AWS S3.
Servidor TUS mínimo, sencillo y ligero conectado con AWS S3. Basado en ankitpokhrel/tus-php.
Si estás utilizando Symfony, consulta la siguiente tabla.
Versión Symfony | Versión php-tus-aws-s3 |
---|---|
^4.3 | ~1.0 |
^5.0 o ^6.0 | ~1.1 |
composer require rafaeltovar/php-tus-aws-s3:~1.x predis/predis
use TusPhp Tus Server as TusServer ;
class Server
extends TusServer
{
//...
public function __construct (
TusPhp Cache AbstractCache $ cache ,
League Flysystem AwsS3v3 AwsS3Adapter $ storage ,
TusPhpS3 Http Request $ request ,
$ excludeAttrApiPath = [],
$ forceLocationSSL = true )
{
//...
}
}
Propiedad | Tipo | Detalles |
---|---|---|
$cache | TusPhpCacheAbstractCache | Estamos utilizando TusPhpS3CachePredisCache para el cliente Predis . |
$storage | LeagueFlysystemAwsS3v3AwsS3Adapter | Este adaptador contiene el cliente AWS S3. |
$request | TusPhps3HttpRequest | Este objeto contiene un SymfonyComponentHttpFoundationRequest . |
$excludeAttrApiPath | array | Excluya algunas partes de la ruta de la API para crear una ruta base de la API real para el servidor TUS. Por ejemplo, si la ruta base de mi API es https://example.com/uploads pero mi PATCH de carga es http://example.com/uploads/{id} Necesitamos excluir ['id'] . |
$forceLocationSSL | boolean | Forzar la propiedad del encabezado de location a https . |
/**
* Create new upload
* or get server configuration
**/
$ routes -> add ( ' uploads ' , ' /api/uploads ' )
-> controller ([UploadController::class, ' upload ' ])
-> methods ([ POST , OPTIONS ])
/**
* Upload files
* or delete uploads
**/
$ routes-> add ( ' uploads ' , ' /api/uploads/{id} ' )
-> controller ([UploadController::class, ' upload ' ])
-> methods ([ PATCH , DELETE ])
use TusPhpS3 ;
use Aws S3 S3Client ;
use League Flysystem AwsS3v3 AwsS3Adapter ;
use Symfony Component HttpFoundation Request as HttpRequest ;
class UploadController
{
public function upload ()
{
// redis connection
$ predis = new Predis Client ( ' tcp://10.0.0.1:6379 ' );
// AWS S3 Client
$ S3client = new S3Client ([
' credentials ' => [
' key ' => ' your-key ' ,
' secret ' => ' your-secret ' ,
],
' region ' => ' your-region ' ,
' version ' => ' latest|version ' ,
]);
$ server = new TusPhpS3 Server (
new TusPhpS3 Cache PredisCache ( $ predis ),
new AwsS3Adapter ( $ S3client , ' your-bucket-name ' , ' optional/path/prefix ' ),
new TusPhpS3 Http Request (HttpRequest:: createFromGlobals ()),
[ ' id ' ],
true
);
return $ server -> serve (); // return an TusPhpS3HttpResponse
}
}