CallbackController.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace Modules\Common\Http\Controllers\Qiniu;
  3. use Illuminate\Http\Request;
  4. use Modules\Common\Services\Qiniu\QiniuTokenService;
  5. use Qiniu\Auth;
  6. class CallbackController
  7. {
  8. public function uploadToken(Request $request) {
  9. $qiniuConfig = config('common.qiniu');
  10. $auth = new Auth($qiniuConfig['accessKey'], $qiniuConfig['secretKey']);
  11. $expires = 7200;
  12. $policy = [
  13. 'scope' => $qiniuConfig['bucket'],
  14. 'callbackUrl' => config('common.common.duanjuManageDomain') . '/api/qiniu/upload/callback',
  15. 'callbackBody' => '{"hash":"$(etag)","key":"$(key)", "fname":"$(fname)", "fprefix":"$(fprefix)" ,"duration":"$(avinfo.video.duration)"}',
  16. 'callbackBodyType' => 'application/json',
  17. 'forceSaveKey' => true,
  18. 'saveKey' => 'duanju/$(x:video_id)/$(etag)$(ext)',
  19. ];
  20. $upToken = $auth->uploadToken($qiniuConfig['bucket'], null, $expires, $policy, true);
  21. return $upToken;
  22. }
  23. public function callback(Request $request) {
  24. $allInfo = $request->only(['duration', 'fname', 'hash', 'key', 'fprefix']);
  25. $videoUrl = config('common.qiniu.publicVideoLinkDomain') . DIRECTORY_SEPARATOR . $allInfo['key'];
  26. $publicVideoUrl = QiniuTokenService::getPrivateSourceDownloadUrl($videoUrl);
  27. $allInfo['public_video_url'] = $publicVideoUrl;
  28. $allInfo['url'] = $videoUrl;
  29. $allInfo['name'] = $allInfo['fprefix'];
  30. return $allInfo;
  31. }
  32. }