CallbackController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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/$(etag)$(ext)',
  19. ];
  20. $upToken = $auth->uploadToken($qiniuConfig['bucket'], null, $expires, $policy, true);
  21. return $upToken;
  22. }
  23. public function downloadUrl(Request $request) {
  24. }
  25. public function callback(Request $request) {
  26. $allInfo = $request->only(['duration', 'fname', 'hash', 'key', 'fprefix']);
  27. $videoUrl = config('common.qiniu.linkDomain') . DIRECTORY_SEPARATOR . $allInfo['key'];
  28. $publicVideoUrl = QiniuTokenService::getPrivateSourceDownloadUrl($videoUrl);
  29. $allInfo['public_video_url'] = $publicVideoUrl;
  30. $allInfo['url'] = $videoUrl;
  31. $allInfo['name'] = $allInfo['fprefix'];
  32. return $allInfo;
  33. }
  34. }