php tus aws s3
1.0.0
โปรเจ็กต์นี้ไม่ได้รับการดูแลรักษา โปรดใช้โปรเจ็กต์ดั้งเดิม ankitpokhrel/tus-php เพื่อให้แน่ใจว่ามีการอัปเดตเป็นประจำ ต่อไปนี้เป็นหมายเหตุบางส่วนเกี่ยวกับการใช้โปรเจ็กต์กับ AWS S3
เซิร์ฟเวอร์ TUS ขั้นต่ำที่เรียบง่าย เบา และเชื่อมต่อกับ AWS S3 อ้างอิงจาก ankitpokhrel/tus-php
หากคุณใช้ Symfony ให้ตรวจสอบตารางด้านล่าง
เวอร์ชันซิมโฟนี | เวอร์ชัน php-tus-aws-s3 |
---|---|
^4.3 | ~1.0 |
^5.0 หรือ ^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 )
{
//...
}
}
คุณสมบัติ | พิมพ์ | รายละเอียด |
---|---|---|
$cache | TusPhpCacheAbstractCache | เรากำลังใช้ TusPhpS3CachePredisCache สำหรับไคลเอนต์ Predis |
$storage | LeagueFlysystemAwsS3v3AwsS3Adapter | อะแดปเตอร์นี้มีไคลเอ็นต์ AWS S3 |
$request | TusPhps3HttpRequest | อ็อบเจ็กต์นี้มี SymfonyComponentHttpFoundationRequest |
$excludeAttrApiPath | array | แยกบางส่วนออกจากเส้นทาง Api เพื่อสร้างเส้นทางฐาน Api จริงสำหรับเซิร์ฟเวอร์ TUS ตัวอย่างเช่น หากเส้นทางฐาน Api ของฉันคือ https://example.com/uploads แต่ PATCH การอัปโหลดของฉันคือ http://example.com/uploads/{id} เราจำเป็นต้องยกเว้น ['id'] |
$forceLocationSSL | boolean | บังคับคุณสมบัติส่วนหัว location เป็น 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
}
}