2017-08-11 85 views
0

如何獲取多部分上傳器的進度?Amazon S3分段上傳和進度條使用PHP

這就是我所擁有的進度回調永遠不會被調用。是否有可能通過PHP SDK取得進展?

$uploader = new MultipartUploader($s3Client, $uploadedFile->getRealPath(), [ 
    'bucket' => env('AWS_BUCKET'), 
    'key' => $filename, 
    '@http' => [ 
     'progress' => function ($expectedDl, $dl, $expectedUl, $ul) { 
      // This never gets called 
     } 
    ] 
]); 

回答

0

我最終找到了自己的解決方案。您在包含@http progress事件回調的配置數組參數中傳遞「params」鍵。

PARAMS:(陣列),其將被應用到 每個由上傳作爲基礎運行子命令的鍵/值參數的數組。

$uploader = new MultipartUploader($s3Client, $uploadedFile->getRealPath(), [ 
    'bucket' => env('AWS_BUCKET'), 
    'key' => $filename, 
    'params' => [ 
     '@http' => [ 
      'progress' => function ($expectedDl, $dl, $expectedUl, $ul) { 
       // This gets called 
      } 
     ] 
    ] 
]); 

第一次嘗試接近,但我希望這個功能在導遊有較明顯的進度條是一種常見的UI元素。