Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwsswl
OneManager-php
提交
19549e06
O
OneManager-php
项目概览
lwsswl
/
OneManager-php
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
OneManager-php
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
19549e06
编写于
3月 13, 2021
作者:
Q
qkqpttgf
提交者:
GitHub
3月 13, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use driveId, select secret drive.
上级
6f2a4c4a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
140 addition
and
44 deletion
+140
-44
disk/Aliyundrive.php
disk/Aliyundrive.php
+140
-44
未找到文件。
disk/Aliyundrive.php
浏览文件 @
19549e06
...
...
@@ -8,7 +8,7 @@ class Aliyundrive {
$this
->
disktag
=
$tag
;
$this
->
auth_url
=
'https://websv.aliyundrive.com/token/refresh'
;
$this
->
api_url
=
'https://api.aliyundrive.com/v2'
;
$this
->
d
efault_drive_id
=
getConfig
(
'default_drive_i
d'
,
$tag
);
$this
->
d
riveId
=
getConfig
(
'driveI
d'
,
$tag
);
$res
=
$this
->
get_access_token
(
getConfig
(
'refresh_token'
,
$tag
));
}
...
...
@@ -27,7 +27,7 @@ class Aliyundrive {
public
function
ext_show_innerenv
()
{
return
[
'd
efault_drive_i
d'
];
return
[
'd
riveI
d'
];
}
public
function
list_files
(
$path
=
'/'
)
...
...
@@ -136,11 +136,20 @@ class Aliyundrive {
$files
[
'error'
][
'stat'
]
=
$files
[
'stat'
];
$files
[
'error'
][
'code'
]
=
'Error'
;
$files
[
'error'
][
'message'
]
=
$files
[
'body'
];
unset
(
$files
[
'file_id'
]);
unset
(
$files
[
'type'
]);
}
elseif
(
isset
(
$files
[
'code'
]))
{
$files
[
'error'
][
'stat'
]
=
500
;
$files
[
'error'
][
'code'
]
=
$files
[
'code'
];
$files
[
'error'
][
'message'
]
=
$files
[
'message'
];
unset
(
$files
[
'file_id'
]);
unset
(
$files
[
'type'
]);
}
else
{
savecache
(
'path_'
.
$path
,
$files
,
$this
->
disktag
,
600
);
}
}
//error_log1('path:' . $path . ', files:' . substr(json_encode($files), 0, 150));
//error_log1('path:' . $path . ', files:' . json_encode($files));
return
$files
;
}
...
...
@@ -151,7 +160,7 @@ class Aliyundrive {
$header
[
"content-type"
]
=
"application/json; charset=utf-8"
;
$header
[
'authorization'
]
=
'Bearer '
.
$this
->
access_token
;
$data
[
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'file_id'
]
=
$file_id
;
$res
=
curl
(
'POST'
,
$url
,
json_encode
(
$data
),
$header
);
...
...
@@ -167,7 +176,7 @@ class Aliyundrive {
$data
[
'limit'
]
=
50
;
$data
[
'marker'
]
=
NULL
;
$data
[
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'parent_file_id'
]
=
$parent_file_id
;
$data
[
'image_thumbnail_process'
]
=
'image/resize,w_160/format,jpeg'
;
$data
[
'image_url_process'
]
=
'image/resize,w_1920/format,jpeg'
;
...
...
@@ -177,6 +186,7 @@ class Aliyundrive {
$data
[
'order_direction'
]
=
'DESC'
;
$res
=
curl
(
'POST'
,
$url
,
json_encode
(
$data
),
$header
);
//error_log1($res['stat'] . $res['body']);
if
(
$res
[
'stat'
]
==
200
)
return
json_decode
(
$res
[
'body'
],
true
);
else
return
$res
;
}
...
...
@@ -188,7 +198,7 @@ class Aliyundrive {
$header
[
'authorization'
]
=
'Bearer '
.
$this
->
access_token
;
$data
[
'check_name_mode'
]
=
'refuse'
;
$data
[
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'file_id'
]
=
$file
[
'id'
];
$data
[
'name'
]
=
$newname
;
//$data['parent_file_id'] = 'root';
...
...
@@ -210,7 +220,7 @@ class Aliyundrive {
$data
[
'requests'
][
0
][
'method'
]
=
'DELETE'
;
$data
[
'requests'
][
0
][
'id'
]
=
$file
[
'id'
];
$data
[
'requests'
][
0
][
'headers'
][
'Content-Type'
]
=
'application/json'
;
$data
[
'requests'
][
0
][
'body'
][
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'requests'
][
0
][
'body'
][
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'requests'
][
0
][
'body'
][
'file_id'
]
=
$file
[
'id'
];
$result
=
curl
(
'POST'
,
$url
,
json_encode
(
$data
),
$header
);
...
...
@@ -275,7 +285,7 @@ class Aliyundrive {
$data
[
'requests'
][
0
][
'method'
]
=
'POST'
;
$data
[
'requests'
][
0
][
'id'
]
=
$file
[
'id'
];
$data
[
'requests'
][
0
][
'headers'
][
'Content-Type'
]
=
'application/json'
;
$data
[
'requests'
][
0
][
'body'
][
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'requests'
][
0
][
'body'
][
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'requests'
][
0
][
'body'
][
'file_id'
]
=
$file
[
'id'
];
$data
[
'requests'
][
0
][
'body'
][
'auto_rename'
]
=
true
;
$data
[
'requests'
][
0
][
'body'
][
'to_parent_file_id'
]
=
$folder
[
'id'
];
...
...
@@ -303,7 +313,7 @@ class Aliyundrive {
$data
[
'content_hash'
]
=
$oldfile
[
'content_hash'
];
$data
[
'content_hash_name'
]
=
'sha1'
;
$data
[
'content_type'
]
=
$oldfile
[
'content_type'
];
$data
[
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'ignoreError'
]
=
false
;
$data
[
'name'
]
=
$oldfile
[
'name'
];
$data
[
'parent_file_id'
]
=
$oldfile
[
'parent_file_id'
];
...
...
@@ -426,7 +436,7 @@ class Aliyundrive {
$header
[
'authorization'
]
=
'Bearer '
.
$this
->
access_token
;
$data
[
'check_name_mode'
]
=
'refuse'
;
// ignore, auto_rename, refuse.
$data
[
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'name'
]
=
$folderName
;
$data
[
'parent_file_id'
]
=
$parentId
;
$data
[
'type'
]
=
'folder'
;
...
...
@@ -443,7 +453,7 @@ class Aliyundrive {
$data
[
'content_hash'
]
=
$sha1
;
$data
[
'content_hash_name'
]
=
'sha1'
;
$data
[
'content_type'
]
=
''
;
$data
[
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'ignoreError'
]
=
false
;
$data
[
'name'
]
=
$fileName
;
$data
[
'parent_file_id'
]
=
$parentId
;
...
...
@@ -467,7 +477,7 @@ class Aliyundrive {
$data
[
'content_hash'
]
=
$sha1
;
$data
[
'content_hash_name'
]
=
'sha1'
;
$data
[
'content_type'
]
=
'text/plain'
;
// now only txt
$data
[
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'ignoreError'
]
=
false
;
$data
[
'name'
]
=
$tofileName
;
$data
[
'parent_file_id'
]
=
$parentId
;
...
...
@@ -483,7 +493,7 @@ class Aliyundrive {
$header
[
"content-type"
]
=
"application/json; charset=utf-8"
;
$header
[
'authorization'
]
=
'Bearer '
.
$this
->
access_token
;
$data
[
'drive_id'
]
=
$this
->
d
efault_drive_i
d
;
$data
[
'drive_id'
]
=
$this
->
d
riveI
d
;
$data
[
'file_id'
]
=
$file_id
;
$data
[
'ignoreError'
]
=
false
;
$i
=
0
;
...
...
@@ -571,6 +581,104 @@ class Aliyundrive {
foreach
(
$EnvConfigs
as
$env
=>
$v
)
if
(
isCommonEnv
(
$env
))
$envs
.
=
'\''
.
$env
.
'\', '
;
$url
=
path_format
(
$_SERVER
[
'PHP_SELF'
]
.
'/'
);
if
(
isset
(
$_GET
[
'Finish'
]))
{
if
(
$this
->
access_token
==
''
)
{
$refresh_token
=
getConfig
(
'refresh_token'
,
$this
->
disktag
);
if
(
!
$refresh_token
)
{
$html
=
'No refresh_token config, please AddDisk again or wait minutes.<br>'
.
$this
->
disktag
;
$title
=
'Error'
;
return
message
(
$html
,
$title
,
201
);
}
$response
=
$this
->
get_access_token
(
$refresh_token
);
if
(
!
$response
)
return
message
(
$this
->
error
[
'body'
],
'Error'
,
$this
->
error
[
'stat'
]);
}
$tmp
=
null
;
if
(
$_POST
[
'driveId'
]
!=
''
)
{
$tmp
[
'driveId'
]
=
$_POST
[
'driveId'
];
}
else
{
return
message
(
'no driveId'
,
'Error'
,
201
);
}
$response
=
setConfigResponse
(
setConfig
(
$tmp
,
$this
->
disktag
)
);
if
(
api_error
(
$response
))
{
$html
=
api_error_msg
(
$response
);
$title
=
'Error'
;
return
message
(
$html
,
$title
,
201
);
}
else
{
$str
.
=
'<meta http-equiv="refresh" content="5;URL='
.
$url
.
'">'
;
return
message
(
$str
,
getconstStr
(
'WaitJumpIndex'
),
201
);
}
}
if
(
isset
(
$_GET
[
'SelectDrive'
]))
{
if
(
$this
->
access_token
==
''
)
{
if
(
isset
(
$_POST
[
'refresh_token'
]))
{
$res
=
curl
(
'POST'
,
$this
->
auth_url
,
json_encode
([
'refresh_token'
=>
$_POST
[
'refresh_token'
]
]),
[
"content-type"
=>
"application/json; charset=utf-8"
]);
//return output($res['body']);
if
(
$res
[
'stat'
]
!=
200
)
{
return
message
(
$res
[
'body'
],
$res
[
'stat'
],
$res
[
'stat'
]);
}
//var_dump($res['body']);
$result
=
json_decode
(
$res
[
'body'
],
true
);
$tmp
=
null
;
$tmp
[
'refresh_token'
]
=
$result
[
'refresh_token'
];
$tmp
[
'token_expires'
]
=
time
()
+
3
*
24
*
60
*
60
;
$tmp
[
'Driver'
]
=
'Aliyundrive'
;
//error_log(json_encode($tmp));
$response
=
setConfigResponse
(
setConfig
(
$tmp
,
$this
->
disktag
)
);
if
(
api_error
(
$response
))
{
$html
=
api_error_msg
(
$response
);
$title
=
'Error'
;
return
message
(
$html
,
$title
,
201
);
}
savecache
(
'access_token'
,
$result
[
'access_token'
],
$this
->
disktag
,
$result
[
'expires_in'
]
-
60
);
}
else
{
$refresh_token
=
getConfig
(
'refresh_token'
,
$this
->
disktag
);
if
(
!
$refresh_token
)
{
$html
=
'No refresh_token config, please AddDisk again or wait minutes.<br>'
.
$this
->
disktag
;
$title
=
'Error'
;
return
message
(
$html
,
$title
,
201
);
}
$response
=
$this
->
get_access_token
(
$refresh_token
);
if
(
!
$response
)
return
message
(
$this
->
error
[
'body'
],
'Error'
,
$this
->
error
[
'stat'
]);
}
}
if
(
!
isset
(
$result
[
'default_drive_id'
]))
{
$res
=
curl
(
'POST'
,
$this
->
auth_url
,
json_encode
([
'refresh_token'
=>
getConfig
(
'refresh_token'
,
$this
->
disktag
)
]),
[
"content-type"
=>
"application/json; charset=utf-8"
]);
//return output($res['body']);
if
(
$res
[
'stat'
]
!=
200
)
{
return
message
(
$res
[
'body'
],
$res
[
'stat'
],
$res
[
'stat'
]);
}
//var_dump($res['body']);
$result
=
json_decode
(
$res
[
'body'
],
true
);
}
//$tmp = null;
//$tmp['driveId'] = $result['default_drive_id'];
//$tmp['default_sbox_drive_id'] = $result['default_sbox_drive_id'];
$title
=
'Select Driver'
;
$html
=
'
<div>
<form action="?Finish&disktag='
.
$_GET
[
'disktag'
]
.
'&AddDisk='
.
get_class
(
$this
)
.
'" method="post" onsubmit="return notnull(this);">
<label><input type="radio" name="driveId" value="'
.
$result
[
'default_drive_id'
]
.
'"'
.
(
$result
[
'default_drive_id'
]
==
$this
->
driveId
?
' checked'
:
''
)
.
'>'
.
'用普通空间 '
.
getconstStr
(
' '
)
.
'</label><br>
<label><input type="radio" name="driveId" value="'
.
$result
[
'default_sbox_drive_id'
]
.
'"'
.
(
$result
[
'default_sbox_drive_id'
]
==
$this
->
driveId
?
' checked'
:
''
)
.
'>'
.
'用虎符文件保险箱 </label><br>
<input type="submit" value="'
.
getconstStr
(
'Submit'
)
.
'">
</form>
</div>
<script>
function notnull(t)
{
if (t.driveId.value==\'\') {
alert(\'Select a Disk\');
return false;
}
return true;
}
</script>
'
;
return
message
(
$html
,
$title
,
201
);
}
if
(
isset
(
$_GET
[
'install0'
])
&&
$_POST
[
'disktag_add'
]
!=
''
)
{
$_POST
[
'disktag_add'
]
=
preg_replace
(
'/[^0-9a-zA-Z|_]/i'
,
''
,
$_POST
[
'disktag_add'
]);
$f
=
substr
(
$_POST
[
'disktag_add'
],
0
,
1
);
...
...
@@ -592,21 +700,10 @@ class Aliyundrive {
document.cookie=\'disktag=; path=/; \'+expires;
</script>'
,
'Error'
,
201
);
}
$res
=
curl
(
'POST'
,
$this
->
auth_url
,
json_encode
([
'refresh_token'
=>
$_POST
[
'refresh_token'
]
]),
[
"content-type"
=>
"application/json; charset=utf-8"
]);
//return output($res['body']);
if
(
$res
[
'stat'
]
!=
200
)
{
return
message
(
$res
[
'body'
],
$res
[
'stat'
],
$res
[
'stat'
]);
}
//var_dump($res['body']);
$result
=
json_decode
(
$res
[
'body'
],
true
);
$tmp
=
null
;
foreach
(
$EnvConfigs
as
$env
=>
$v
)
if
(
isInnerEnv
(
$env
))
$tmp
[
$env
]
=
''
;
$tmp
[
'refresh_token'
]
=
$result
[
'refresh_token'
];
$tmp
[
'default_drive_id'
]
=
$result
[
'default_drive_id'
];
$tmp
[
'default_sbox_drive_id'
]
=
$result
[
'default_sbox_drive_id'
];
$tmp
[
'token_expires'
]
=
time
()
+
3
*
24
*
60
*
60
;
$tmp
[
'Driver'
]
=
'Aliyundrive'
;
$tmp
[
'disktag_add'
]
=
$_POST
[
'disktag_add'
];
$tmp
[
'diskname'
]
=
$_POST
[
'diskname'
];
...
...
@@ -618,20 +715,27 @@ class Aliyundrive {
$title
=
'Error'
;
return
message
(
$html
,
$title
,
201
);
}
else
{
savecache
(
'access_token'
,
$result
[
'access_token'
],
$this
->
disktag
,
$result
[
'expires_in'
]
-
60
);
$str
.
=
'<meta http-equiv="refresh" content="5;URL='
.
$url
.
'">
<script>
var expd = new Date();
expd.setTime(expd.getTime()+1);
var expires = "expires="+expd.toGMTString();
document.cookie=\'disktag=; path=/; \'+expires;
</script>'
;
return
message
(
$str
,
getconstStr
(
'WaitJumpIndex'
),
201
);
$title
=
'Refresh token'
;
$html
=
'
<form action="?SelectDrive&disktag='
.
$_GET
[
'disktag'
]
.
'&AddDisk='
.
get_class
(
$this
)
.
'" method="post" onsubmit="return notnull(this);">
<div>填入refresh_token:
<input type="text" name="refresh_token" placeholder="自行百度如何获取'
.
getconstStr
(
' '
)
.
'" style="width:100%"><br>
</div><br>
<input type="submit" value="'
.
getconstStr
(
'Submit'
)
.
'">
<form>
<script>
function notnull(t)
{
if (t.refresh_token.value==\'\') {
alert(\'Input refresh_token\');
return false;
}
return true;
}
</script>
'
;
return
message
(
$html
,
$title
,
201
);
}
/*$api = $this->api_url . '/user/get';
$header['authorization'] = 'Bearer ' . $this->access_token;
return json_encode(curl('GET', $api, '', $header));*/
}
$html
=
'
...
...
@@ -642,10 +746,6 @@ class Aliyundrive {
'
.
getconstStr
(
'DiskName'
)
.
':
<input type="text" name="diskname" placeholder="'
.
getconstStr
(
'EnvironmentsDescription'
)[
'diskname'
]
.
'" style="width:100%"><br>
<br>
<div>填入refresh_token:
<input type="text" name="refresh_token" placeholder="'
.
getconstStr
(
' '
)
.
'" style="width:100%"><br>
</div>
<br>
<input type="submit" value="'
.
getconstStr
(
'Submit'
)
.
'">
</form>
...
...
@@ -667,10 +767,6 @@ class Aliyundrive {
alert(\''
.
getconstStr
(
'TagFormatAlert'
)
.
'\');
return false;
}
if (t.refresh_token.value==\'\') {
alert(\'Input refresh_token\');
return false;
}
document.getElementById("form1").action="?install0&disktag=" + t.disktag_add.value + "&AddDisk=Aliyundrive";
//var expd = new Date();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录