提交 65dcedb3 编写于 作者: H HFO4

Fix: blocking while get uptoken

上级 422f9d8d
......@@ -170,6 +170,6 @@ class File extends Controller{
}
}
return FileManage::createFolder($dirName,$dirPosition,$this->userObj->uid);
return json(FileManage::createFolder($dirName,$dirPosition,$this->userObj->uid));
}
}
\ No newline at end of file
......@@ -543,7 +543,9 @@ class FileManage extends Model{
$fileList = Db::name('files')->where('upload_user',$uid)->where('dir',$path)->select();
$dirList = Db::name('folders')->where('owner',$uid)->where('position',$path)->select();
$count= 0;
$fileListData=[];
$fileListData=[
"result"=>[],
];
foreach ($dirList as $key => $value) {
$fileListData['result'][$count]['name'] = $value['folder_name'];
$fileListData['result'][$count]['rights'] = "drwxr-xr-x";
......
......@@ -301,15 +301,15 @@ class LocalAdapter extends Model{
* @return array
*/
static function getThumbSize($width,$height){
$rate = $width/$height;
$maxWidth = 90;
$maxHeight = 39;
$changeWidth = 39*$rate;
$changeHeight = 90/$rate;
if($changeWidth>=$maxWidth){
return [(int)$changeHeight,90];
}
return [39,(int)$changeWidth];
// $rate = $width/$height;
// $maxWidth = 280;
// $maxHeight = 150;
// $changeWidth = 150*$rate;
// $changeHeight = 280/$rate;
// if($changeWidth>=$maxWidth){
// return [(int)$changeHeight,280];
// }
return [230,200];
}
/**
......
......@@ -31,7 +31,10 @@
allowShare:"{$groupData.allow_share}",
allowRemoteDownload:"{:explode(",",$groupData.aria2)[0]}",
allowTorrentDownload:"{:explode(",",$groupData.aria2)[1]}",
};
};
apiURL={
imgThumb:"/File/Thumb"
};
</script>
</head>
<body>
......
......@@ -714,7 +714,7 @@ function QiniuJsSDK() {
logger.debug("get uptoken from: ", that.uptoken_url);
// TODO: use mOxie
var ajax = that.createAjax();
ajax.open('GET', that.uptoken_url, false);
ajax.open('GET', that.uptoken_url, true);
ajax.setRequestHeader("If-Modified-Since", "0");
// ajax.onreadystatechange = function() {
// if (ajax.readyState === 4 && ajax.status === 200) {
......@@ -723,58 +723,64 @@ function QiniuJsSDK() {
// }
// };
ajax.send();
if (ajax.status === 200) {
var res = that.parseJSON(ajax.responseText);
that.token = res.uptoken;
if (uploadConfig.saveType == "oss"){
var putPolicy = that.token;
that.sign = res.sign;
that.access = res.id;
that.file_name = res.key;
that.callback = res.callback;
}else if(uploadConfig.saveType == "s3"){
var putPolicy = that.token;
that.sign = res.sign;
that.policy = res.policy;
that.file_name = res.key;
that.credential = res.credential;
that.x_amz_date = res.x_amz_date;
that.surl = res.siteUrl;
that.callbackKey = res.callBackKey;
}else if(uploadConfig.saveType == "upyun"){
var putPolicy = that.token;
that.token = res.token;
that.policy = res.policy;
}else if(uploadConfig.saveType == "remote"){
var putPolicy = that.token;
that.policy = res.uptoken;
}else{
var segments = that.token.split(":");
var putPolicy = that.parseJSON(that.URLSafeBase64Decode(segments[2]));
if (!that.tokenMap) {
that.tokenMap = {};
}
var getTimestamp = function(time) {
return Math.ceil(time.getTime()/1000);
};
var serverTime = getTimestamp(new Date(ajax.getResponseHeader("date")));
var clientTime = getTimestamp(new Date());
that.tokenInfo = {
serverDelay: clientTime - serverTime,
deadline: putPolicy.deadline,
isExpired: function() {
var leftTime = this.deadline - getTimestamp(new Date()) + this.serverDelay;
return leftTime < 600;
ajax.onload = function (e){
if (ajax.status === 200) {
var res = that.parseJSON(ajax.responseText);
that.token = res.uptoken;
if (uploadConfig.saveType == "oss"){
var putPolicy = that.token;
that.sign = res.sign;
that.access = res.id;
that.file_name = res.key;
that.callback = res.callback;
}else if(uploadConfig.saveType == "s3"){
var putPolicy = that.token;
that.sign = res.sign;
that.policy = res.policy;
that.file_name = res.key;
that.credential = res.credential;
that.x_amz_date = res.x_amz_date;
that.surl = res.siteUrl;
that.callbackKey = res.callBackKey;
}else if(uploadConfig.saveType == "upyun"){
var putPolicy = that.token;
that.token = res.token;
that.policy = res.policy;
}else if(uploadConfig.saveType == "remote"){
var putPolicy = that.token;
that.policy = res.uptoken;
}else{
var segments = that.token.split(":");
var putPolicy = that.parseJSON(that.URLSafeBase64Decode(segments[2]));
if (!that.tokenMap) {
that.tokenMap = {};
}
};
logger.debug("get token info: ", that.tokenInfo);
var getTimestamp = function(time) {
return Math.ceil(time.getTime()/1000);
};
var serverTime = getTimestamp(new Date(ajax.getResponseHeader("date")));
var clientTime = getTimestamp(new Date());
that.tokenInfo = {
serverDelay: clientTime - serverTime,
deadline: putPolicy.deadline,
isExpired: function() {
var leftTime = this.deadline - getTimestamp(new Date()) + this.serverDelay;
return leftTime < 600;
}
};
logger.debug("get token info: ", that.tokenInfo);
}
logger.debug("get new uptoken: ", that.token);
} else {
logger.error("get uptoken error: ", ajax.responseText);
}
logger.debug("get new uptoken: ", that.token);
} else {
}
ajax.onerror = function (e){
logger.error("get uptoken error: ", ajax.responseText);
}
} else if (op.uptoken_func) {
logger.debug("get uptoken from uptoken_func");
that.token = op.uptoken_func(file);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册