php tus aws s3
1.0.0
Ce projet n'est pas maintenu. Veuillez utiliser le projet original ankitpokhrel/tus-php pour assurer des mises à jour régulières. Voici quelques notes sur l'utilisation du projet avec AWS S3.
Serveur TUS simple, léger et minimum connecté à AWS S3. Basé sur ankitpokhrel/tus-php.
Si vous utilisez Symfony, consultez le tableau ci-dessous.
Version Symfony | version php-tus-aws-s3 |
---|---|
^4.3 | ~1,0 |
^5,0 ou ^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 )
{
//...
}
}
Propriété | Taper | Détails |
---|---|---|
$cache | TusPhpCacheAbstractCache | Nous utilisons TusPhpS3CachePredisCache pour le client Predis . |
$storage | LeagueFlysystemAwsS3v3AwsS3Adapter | Cet adaptateur contient le client AWS S3. |
$request | TusPhps3HttpRequest | Cet objet contient un SymfonyComponentHttpFoundationRequest . |
$excludeAttrApiPath | array | Excluez certaines parties du chemin de l'API pour créer un véritable chemin de base de l'API pour le serveur TUS. Par exemple, si le chemin de base de mon API est https://example.com/uploads mais que mon PATCH de téléchargement est http://example.com/uploads/{id} nous devons exclure ['id'] . |
$forceLocationSSL | boolean | Forcer la propriété d'en-tête location sur 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
}
}