Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
hexbee
Cloudreve
提交
d3f132de
C
Cloudreve
项目概览
hexbee
/
Cloudreve
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cloudreve
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d3f132de
编写于
1月 22, 2020
作者:
H
HFO4
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix: thumbnails for 21Vianet OneDrive
上级
752ce5ce
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
27 addition
and
5 deletion
+27
-5
models/policy.go
models/policy.go
+2
-2
pkg/filesystem/driver/onedrive/api.go
pkg/filesystem/driver/onedrive/api.go
+18
-2
pkg/filesystem/driver/onedrive/client.go
pkg/filesystem/driver/onedrive/client.go
+1
-0
pkg/filesystem/driver/onedrive/oauth.go
pkg/filesystem/driver/onedrive/oauth.go
+4
-0
pkg/filesystem/driver/onedrive/types.go
pkg/filesystem/driver/onedrive/types.go
+1
-0
pkg/filesystem/file.go
pkg/filesystem/file.go
+1
-1
未找到文件。
models/policy.go
浏览文件 @
d3f132de
...
...
@@ -22,8 +22,8 @@ type Policy struct {
BucketName
string
IsPrivate
bool
BaseURL
string
AccessKey
string
`gorm:"size:
512
"`
SecretKey
string
`gorm:"size:
512
"`
AccessKey
string
`gorm:"size:
1024
"`
SecretKey
string
`gorm:"size:
1024
"`
MaxSize
uint64
AutoRename
bool
DirNameRule
string
...
...
pkg/filesystem/driver/onedrive/api.go
浏览文件 @
d3f132de
...
...
@@ -310,8 +310,17 @@ func (client *Client) makeBatchDeleteRequestsBody(files []string) string {
// GetThumbURL 获取给定尺寸的缩略图URL
func
(
client
*
Client
)
GetThumbURL
(
ctx
context
.
Context
,
dst
string
,
w
,
h
uint
)
(
string
,
error
)
{
dst
=
strings
.
TrimPrefix
(
dst
,
"/"
)
cropOption
:=
fmt
.
Sprintf
(
"c%dx%d_Crop"
,
w
,
h
)
requestURL
:=
client
.
getRequestURL
(
"me/drive/root:/"
+
dst
+
":/thumbnails"
)
+
"?select="
+
cropOption
var
(
cropOption
string
requestURL
string
)
if
client
.
Endpoints
.
isInChina
{
cropOption
=
"large"
requestURL
=
client
.
getRequestURL
(
"me/drive/root:/"
+
dst
+
":/thumbnails/0"
)
+
"/"
+
cropOption
}
else
{
cropOption
=
fmt
.
Sprintf
(
"c%dx%d_Crop"
,
w
,
h
)
requestURL
=
client
.
getRequestURL
(
"me/drive/root:/"
+
dst
+
":/thumbnails"
)
+
"?select="
+
cropOption
}
res
,
err
:=
client
.
requestWithStr
(
ctx
,
"GET"
,
requestURL
,
""
,
200
)
if
err
!=
nil
{
...
...
@@ -327,6 +336,10 @@ func (client *Client) GetThumbURL(ctx context.Context, dst string, w, h uint) (s
return
""
,
decodeErr
}
if
thumbRes
.
URL
!=
""
{
return
thumbRes
.
URL
,
nil
}
if
len
(
thumbRes
.
Value
)
==
1
{
if
res
,
ok
:=
thumbRes
.
Value
[
0
][
cropOption
];
ok
{
return
res
.
(
map
[
string
]
interface
{})[
"url"
]
.
(
string
),
nil
...
...
@@ -386,6 +399,9 @@ func (client *Client) MonitorUpload(uploadURL, callbackKey, path string, size ui
}
// 成功获取分片上传状态,检查文件大小
if
len
(
status
.
NextExpectedRanges
)
==
0
{
continue
}
sizeRange
:=
strings
.
Split
(
status
.
NextExpectedRanges
[
len
(
status
.
NextExpectedRanges
)
-
1
],
"-"
,
...
...
pkg/filesystem/driver/onedrive/client.go
浏览文件 @
d3f132de
...
...
@@ -30,6 +30,7 @@ type Endpoints struct {
OAuthURL
string
// OAuth认证的基URL
OAuthEndpoints
*
oauthEndpoint
EndpointURL
string
// 接口请求的基URL
isInChina
bool
// 是否为世纪互联
}
// NewClient 根据存储策略获取新的client
...
...
pkg/filesystem/driver/onedrive/oauth.go
浏览文件 @
d3f132de
...
...
@@ -72,6 +72,10 @@ func (client *Client) getOAuthEndpoint() *oauthEndpoint {
case
"login.live.com"
:
token
,
_
=
url
.
Parse
(
"https://login.live.com/oauth20_token.srf"
)
authorize
,
_
=
url
.
Parse
(
"https://login.live.com/oauth20_authorize.srf"
)
case
"login.chinacloudapi.cn"
:
client
.
Endpoints
.
isInChina
=
true
token
,
_
=
url
.
Parse
(
"https://login.chinacloudapi.cn/common/oauth2/v2.0/token"
)
authorize
,
_
=
url
.
Parse
(
"https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize"
)
default
:
token
,
_
=
url
.
Parse
(
"https://login.microsoftonline.com/common/oauth2/v2.0/token"
)
authorize
,
_
=
url
.
Parse
(
"https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
)
...
...
pkg/filesystem/driver/onedrive/types.go
浏览文件 @
d3f132de
...
...
@@ -79,6 +79,7 @@ type BatchResponse struct {
// ThumbResponse 获取缩略图的响应
type
ThumbResponse
struct
{
Value
[]
map
[
string
]
interface
{}
`json:"value"`
URL
string
`json:"url"`
}
// Chunk 文件分片
...
...
pkg/filesystem/file.go
浏览文件 @
d3f132de
...
...
@@ -49,7 +49,7 @@ func (fs *FileSystem) AddFile(ctx context.Context, parent *model.Folder) (*model
if
err
:=
fs
.
Trigger
(
ctx
,
"BeforeAddFileFailed"
);
err
!=
nil
{
util
.
Log
()
.
Debug
(
"BeforeAddFileFailed 钩子执行失败,%s"
,
err
)
}
return
nil
,
ErrFileExisted
.
WithError
(
err
)
return
nil
,
err
}
file
:=
ctx
.
Value
(
fsctx
.
FileHeaderCtx
)
.
(
FileHeader
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录