get_token.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. define("IN_T",true);
  3. require_once "./source/include/init.php";
  4. $act = Common::sfilter($_REQUEST['act']);
  5. $input=null;
  6. if (empty($act)) {
  7. $input = $Json->decode(file_get_contents("php://input"));
  8. if (!empty($input)) {
  9. $act = $input['act'];
  10. }
  11. }
  12. $arr =array();
  13. if ($act=='qj_img') {
  14. $arr['prefix'] = $user['pk_user_main']."/sourceimg/";
  15. }
  16. else if($act =="video"){
  17. $arr['prefix'] = $user['pk_user_main']."/video/";
  18. }
  19. else if($act == 'media_resource'){
  20. $filename = Common::sfilter($input['filename']);
  21. if (empty($filename)) {
  22. exit;
  23. }
  24. $media_suffix = substr($filename , strrpos($filename , "."));
  25. $filename = substr($filename, 0,strrpos($filename , "."));
  26. if(mb_strlen($filename)>100){
  27. $filename = substr($filename,0,100);
  28. }
  29. $media_type = intval($input['mediaType']);
  30. $view_uuid =Common::guid(16);
  31. $media_path=$user['pk_user_main']."/media/".($media_type==0?"img/":"msc/");
  32. $data = array(
  33. "media_type"=>$media_type,
  34. "view_uuid"=>$view_uuid,
  35. "create_time"=>date("Y-m-d H:i:s",Common::gmtime()),
  36. "media_path"=>$media_path.$view_uuid.$media_suffix,
  37. "absolutelocation"=>$_lang['cdn_host'].$media_path.$view_uuid.$media_suffix,
  38. "media_name"=>$filename,
  39. "pk_user_main"=>$user['pk_user_main'],
  40. "media_suffix"=>$media_suffix,
  41. "media_size"=>intval($input['filesize']/1000)
  42. );
  43. $Db->insert($Base->table("cus_mediares"),$data);
  44. $arr['prefix'] = $media_path;
  45. $arr['key'] = $data['media_path'];
  46. $arr['medias'] = $data;
  47. }
  48. else if($act == 'def_material'){
  49. $arr['prefix'] ="def_material/";
  50. }
  51. else if($act == 'obj_img'){
  52. $arr['prefix'] = $user['pk_user_main'].'/obj3d/'.date("Ymd",Common::gmtime())."/";
  53. }
  54. else{
  55. die("Illegalargument");
  56. }
  57. switch ($_lang['global_storage']) {
  58. case 'qiniu':
  59. require_once './source/qiniu/cls_qiniu.php';
  60. $arr['token'] =Qiniu_Factory::getAuth()->uploadToken($_lang['qiniu_config']['bucket']) ;
  61. break;
  62. case 'oss':
  63. $expiration = gmt_iso8601(time() + 1200);
  64. $conditions[] = array(0=>'content-length-range', 1=>0, 2=>1572864000);
  65. $start = array(0=>'starts-with', 1=>'$key', 2=>$arr['prefix']);
  66. $conditions[] = $start;
  67. $base64_policy = base64_encode(json_encode(array('expiration'=>$expiration,'conditions'=>$conditions)));
  68. $arr['accessid'] = $_lang['oss_config']['access_id'];
  69. $arr['host'] = $_lang['oss_config']['external_url'];
  70. $arr['policy'] = $base64_policy;
  71. $arr['signature'] = base64_encode(hash_hmac('sha1', $base64_policy, $_lang['oss_config']['access_secret'], true));
  72. break;
  73. }
  74. echo json_encode($arr);
  75. die;
  76. function gmt_iso8601($time) {
  77. $dtStr = date("c", $time);
  78. $mydatetime = new DateTime($dtStr);
  79. $expiration = $mydatetime->format(DateTime::ISO8601);
  80. $pos = strpos($expiration, '+');
  81. $expiration = substr($expiration, 0, $pos);
  82. return $expiration."Z";
  83. }
  84. ?>