Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
hexbee
Cloudreve
提交
4d70f9fa
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,体验更适合开发者的 AI 搜索 >>
提交
4d70f9fa
编写于
3月 11, 2020
作者:
H
HFO4
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix: get execute file path dynamically
上级
b6e1e04c
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
27 addition
and
16 deletion
+27
-16
bootstrap/app.go
bootstrap/app.go
+1
-1
bootstrap/static.go
bootstrap/static.go
+2
-2
main.go
main.go
+1
-1
pkg/crontab/collect.go
pkg/crontab/collect.go
+1
-1
pkg/filesystem/archive.go
pkg/filesystem/archive.go
+3
-3
pkg/filesystem/driver/local/handler.go
pkg/filesystem/driver/local/handler.go
+3
-3
pkg/filesystem/image.go
pkg/filesystem/image.go
+1
-1
pkg/filesystem/upload.go
pkg/filesystem/upload.go
+1
-1
pkg/thumb/image.go
pkg/thumb/image.go
+1
-1
pkg/util/path.go
pkg/util/path.go
+11
-0
service/admin/policy.go
service/admin/policy.go
+1
-1
service/user/setting.go
service/user/setting.go
+1
-1
未找到文件。
bootstrap/app.go
浏览文件 @
4d70f9fa
...
@@ -31,7 +31,7 @@ V` + conf.BackendVersion + ` Commit #` + conf.LastCommit + ` Pro=` + conf.IsPr
...
@@ -31,7 +31,7 @@ V` + conf.BackendVersion + ` Commit #` + conf.LastCommit + ` Pro=` + conf.IsPr
================================================
================================================
`
)
`
)
data
,
err
:=
ioutil
.
ReadFile
(
string
([]
byte
{
107
,
101
,
121
,
46
,
98
,
105
,
110
}
))
data
,
err
:=
ioutil
.
ReadFile
(
util
.
RelativePath
(
string
([]
byte
{
107
,
101
,
121
,
46
,
98
,
105
,
110
})
))
if
err
!=
nil
{
if
err
!=
nil
{
util
.
Log
()
.
Panic
(
"%s"
,
err
)
util
.
Log
()
.
Panic
(
"%s"
,
err
)
}
}
...
...
bootstrap/static.go
浏览文件 @
4d70f9fa
...
@@ -34,9 +34,9 @@ func (b *GinFS) Exists(prefix string, filepath string) bool {
...
@@ -34,9 +34,9 @@ func (b *GinFS) Exists(prefix string, filepath string) bool {
func
InitStatic
()
{
func
InitStatic
()
{
var
err
error
var
err
error
if
util
.
Exists
(
"statics"
)
{
if
util
.
Exists
(
util
.
RelativePath
(
"statics"
)
)
{
util
.
Log
()
.
Info
(
"检测到 statics 目录存在,将使用此目录下的静态资源文件"
)
util
.
Log
()
.
Info
(
"检测到 statics 目录存在,将使用此目录下的静态资源文件"
)
StaticFS
=
static
.
LocalFile
(
"statics"
,
false
)
StaticFS
=
static
.
LocalFile
(
util
.
RelativePath
(
"statics"
)
,
false
)
}
else
{
}
else
{
StaticFS
=
&
GinFS
{}
StaticFS
=
&
GinFS
{}
StaticFS
.
(
*
GinFS
)
.
FS
,
err
=
fs
.
New
()
StaticFS
.
(
*
GinFS
)
.
FS
,
err
=
fs
.
New
()
...
...
main.go
浏览文件 @
4d70f9fa
...
@@ -11,7 +11,7 @@ import (
...
@@ -11,7 +11,7 @@ import (
var
confPath
string
var
confPath
string
func
init
()
{
func
init
()
{
flag
.
StringVar
(
&
confPath
,
"c"
,
"conf.ini"
,
"配置文件路径"
)
flag
.
StringVar
(
&
confPath
,
"c"
,
util
.
RelativePath
(
"conf.ini"
)
,
"配置文件路径"
)
flag
.
Parse
()
flag
.
Parse
()
bootstrap
.
Init
(
confPath
)
bootstrap
.
Init
(
confPath
)
}
}
...
...
pkg/crontab/collect.go
浏览文件 @
4d70f9fa
...
@@ -24,7 +24,7 @@ func garbageCollect() {
...
@@ -24,7 +24,7 @@ func garbageCollect() {
func
collectArchiveFile
()
{
func
collectArchiveFile
()
{
// 读取有效期、目录设置
// 读取有效期、目录设置
tempPath
:=
model
.
GetSettingByName
(
"temp_path"
)
tempPath
:=
util
.
RelativePath
(
model
.
GetSettingByName
(
"temp_path"
)
)
expires
:=
model
.
GetIntSetting
(
"download_timeout"
,
30
)
expires
:=
model
.
GetIntSetting
(
"download_timeout"
,
30
)
// 列出文件
// 列出文件
...
...
pkg/filesystem/archive.go
浏览文件 @
4d70f9fa
...
@@ -78,7 +78,7 @@ func (fs *FileSystem) Compress(ctx context.Context, folderIDs, fileIDs []uint, i
...
@@ -78,7 +78,7 @@ func (fs *FileSystem) Compress(ctx context.Context, folderIDs, fileIDs []uint, i
saveFolder
=
"compress"
saveFolder
=
"compress"
}
}
zipFilePath
:=
filepath
.
Join
(
zipFilePath
:=
filepath
.
Join
(
model
.
GetSettingByName
(
"temp_path"
),
util
.
RelativePath
(
model
.
GetSettingByName
(
"temp_path"
)
),
saveFolder
,
saveFolder
,
fmt
.
Sprintf
(
"archive_%d.zip"
,
time
.
Now
()
.
UnixNano
()),
fmt
.
Sprintf
(
"archive_%d.zip"
,
time
.
Now
()
.
UnixNano
()),
)
)
...
@@ -217,7 +217,7 @@ func (fs *FileSystem) Decompress(ctx context.Context, src, dst string) error {
...
@@ -217,7 +217,7 @@ func (fs *FileSystem) Decompress(ctx context.Context, src, dst string) error {
}
}
tempZipFilePath
=
filepath
.
Join
(
tempZipFilePath
=
filepath
.
Join
(
model
.
GetSettingByName
(
"temp_path"
),
util
.
RelativePath
(
model
.
GetSettingByName
(
"temp_path"
)
),
"decompress"
,
"decompress"
,
fmt
.
Sprintf
(
"archive_%d.zip"
,
time
.
Now
()
.
UnixNano
()),
fmt
.
Sprintf
(
"archive_%d.zip"
,
time
.
Now
()
.
UnixNano
()),
)
)
...
@@ -291,8 +291,8 @@ func (fs *FileSystem) Decompress(ctx context.Context, src, dst string) error {
...
@@ -291,8 +291,8 @@ func (fs *FileSystem) Decompress(ctx context.Context, src, dst string) error {
select
{
select
{
case
<-
worker
:
case
<-
worker
:
wg
.
Add
(
1
)
go
func
(
fileStream
io
.
ReadCloser
,
size
int64
)
{
go
func
(
fileStream
io
.
ReadCloser
,
size
int64
)
{
wg
.
Add
(
1
)
defer
func
()
{
defer
func
()
{
worker
<-
1
worker
<-
1
wg
.
Done
()
wg
.
Done
()
...
...
pkg/filesystem/driver/local/handler.go
浏览文件 @
4d70f9fa
...
@@ -26,7 +26,7 @@ type Driver struct {
...
@@ -26,7 +26,7 @@ type Driver struct {
// Get 获取文件内容
// Get 获取文件内容
func
(
handler
Driver
)
Get
(
ctx
context
.
Context
,
path
string
)
(
response
.
RSCloser
,
error
)
{
func
(
handler
Driver
)
Get
(
ctx
context
.
Context
,
path
string
)
(
response
.
RSCloser
,
error
)
{
// 打开文件
// 打开文件
file
,
err
:=
os
.
Open
(
path
)
file
,
err
:=
os
.
Open
(
util
.
RelativePath
(
path
)
)
if
err
!=
nil
{
if
err
!=
nil
{
util
.
Log
()
.
Debug
(
"无法打开文件:%s"
,
err
)
util
.
Log
()
.
Debug
(
"无法打开文件:%s"
,
err
)
return
nil
,
err
return
nil
,
err
...
@@ -51,7 +51,7 @@ func closeReader(ctx context.Context, closer io.Closer) {
...
@@ -51,7 +51,7 @@ func closeReader(ctx context.Context, closer io.Closer) {
// Put 将文件流保存到指定目录
// Put 将文件流保存到指定目录
func
(
handler
Driver
)
Put
(
ctx
context
.
Context
,
file
io
.
ReadCloser
,
dst
string
,
size
uint64
)
error
{
func
(
handler
Driver
)
Put
(
ctx
context
.
Context
,
file
io
.
ReadCloser
,
dst
string
,
size
uint64
)
error
{
defer
file
.
Close
()
defer
file
.
Close
()
dst
=
filepath
.
FromSlash
(
dst
)
dst
=
util
.
RelativePath
(
filepath
.
FromSlash
(
dst
)
)
// 如果目标目录不存在,创建
// 如果目标目录不存在,创建
basePath
:=
filepath
.
Dir
(
dst
)
basePath
:=
filepath
.
Dir
(
dst
)
...
@@ -83,7 +83,7 @@ func (handler Driver) Delete(ctx context.Context, files []string) ([]string, err
...
@@ -83,7 +83,7 @@ func (handler Driver) Delete(ctx context.Context, files []string) ([]string, err
var
retErr
error
var
retErr
error
for
_
,
value
:=
range
files
{
for
_
,
value
:=
range
files
{
err
:=
os
.
Remove
(
filepath
.
FromSlash
(
value
))
err
:=
os
.
Remove
(
util
.
RelativePath
(
filepath
.
FromSlash
(
value
)
))
if
err
!=
nil
{
if
err
!=
nil
{
util
.
Log
()
.
Warning
(
"无法删除文件,%s"
,
err
)
util
.
Log
()
.
Warning
(
"无法删除文件,%s"
,
err
)
retErr
=
err
retErr
=
err
...
...
pkg/filesystem/image.go
浏览文件 @
4d70f9fa
...
@@ -73,7 +73,7 @@ func (fs *FileSystem) GenerateThumbnail(ctx context.Context, file *model.File) {
...
@@ -73,7 +73,7 @@ func (fs *FileSystem) GenerateThumbnail(ctx context.Context, file *model.File) {
// 生成缩略图
// 生成缩略图
image
.
GetThumb
(
fs
.
GenerateThumbnailSize
(
w
,
h
))
image
.
GetThumb
(
fs
.
GenerateThumbnailSize
(
w
,
h
))
// 保存到文件
// 保存到文件
err
=
image
.
Save
(
file
.
SourceName
+
conf
.
ThumbConfig
.
FileSuffix
)
err
=
image
.
Save
(
util
.
RelativePath
(
file
.
SourceName
+
conf
.
ThumbConfig
.
FileSuffix
)
)
if
err
!=
nil
{
if
err
!=
nil
{
util
.
Log
()
.
Warning
(
"无法保存缩略图:%s"
,
err
)
util
.
Log
()
.
Warning
(
"无法保存缩略图:%s"
,
err
)
return
return
...
...
pkg/filesystem/upload.go
浏览文件 @
4d70f9fa
...
@@ -235,7 +235,7 @@ func (fs *FileSystem) UploadFromPath(ctx context.Context, src, dst string) error
...
@@ -235,7 +235,7 @@ func (fs *FileSystem) UploadFromPath(ctx context.Context, src, dst string) error
return
err
return
err
}
}
file
,
err
:=
os
.
Open
(
src
)
file
,
err
:=
os
.
Open
(
util
.
RelativePath
(
src
)
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
...
pkg/thumb/image.go
浏览文件 @
4d70f9fa
...
@@ -83,7 +83,7 @@ func (image *Thumb) Save(path string) (err error) {
...
@@ -83,7 +83,7 @@ func (image *Thumb) Save(path string) (err error) {
// CreateAvatar 创建头像
// CreateAvatar 创建头像
func
(
image
*
Thumb
)
CreateAvatar
(
uid
uint
)
error
{
func
(
image
*
Thumb
)
CreateAvatar
(
uid
uint
)
error
{
// 读取头像相关设定
// 读取头像相关设定
savePath
:=
model
.
GetSettingByName
(
"avatar_path"
)
savePath
:=
util
.
RelativePath
(
model
.
GetSettingByName
(
"avatar_path"
)
)
s
:=
model
.
GetIntSetting
(
"avatar_size_s"
,
50
)
s
:=
model
.
GetIntSetting
(
"avatar_size_s"
,
50
)
m
:=
model
.
GetIntSetting
(
"avatar_size_m"
,
130
)
m
:=
model
.
GetIntSetting
(
"avatar_size_m"
,
130
)
l
:=
model
.
GetIntSetting
(
"avatar_size_l"
,
200
)
l
:=
model
.
GetIntSetting
(
"avatar_size_l"
,
200
)
...
...
pkg/util/path.go
浏览文件 @
4d70f9fa
package
util
package
util
import
(
import
(
"os"
"path"
"path"
"path/filepath"
"strings"
"strings"
)
)
...
@@ -45,3 +47,12 @@ func SplitPath(path string) []string {
...
@@ -45,3 +47,12 @@ func SplitPath(path string) []string {
func
FormSlash
(
old
string
)
string
{
func
FormSlash
(
old
string
)
string
{
return
path
.
Clean
(
strings
.
ReplaceAll
(
old
,
"
\\
"
,
"/"
))
return
path
.
Clean
(
strings
.
ReplaceAll
(
old
,
"
\\
"
,
"/"
))
}
}
// RelativePath 获取相对可执行文件的路径
func
RelativePath
(
name
string
)
string
{
if
filepath
.
IsAbs
(
name
)
{
return
name
}
e
,
_
:=
os
.
Executable
()
return
filepath
.
Join
(
filepath
.
Dir
(
e
),
name
)
}
service/admin/policy.go
浏览文件 @
4d70f9fa
...
@@ -264,7 +264,7 @@ func (service *PathTestService) Test() serializer.Response {
...
@@ -264,7 +264,7 @@ func (service *PathTestService) Test() serializer.Response {
policy
:=
model
.
Policy
{
DirNameRule
:
service
.
Path
}
policy
:=
model
.
Policy
{
DirNameRule
:
service
.
Path
}
path
:=
policy
.
GeneratePath
(
1
,
"/My File"
)
path
:=
policy
.
GeneratePath
(
1
,
"/My File"
)
path
=
filepath
.
Join
(
path
,
"test.txt"
)
path
=
filepath
.
Join
(
path
,
"test.txt"
)
file
,
err
:=
util
.
CreatNestedFile
(
path
)
file
,
err
:=
util
.
CreatNestedFile
(
util
.
RelativePath
(
path
)
)
if
err
!=
nil
{
if
err
!=
nil
{
return
serializer
.
ParamErr
(
fmt
.
Sprintf
(
"无法创建路径 %s , %s"
,
path
,
err
.
Error
()),
nil
)
return
serializer
.
ParamErr
(
fmt
.
Sprintf
(
"无法创建路径 %s , %s"
,
path
,
err
.
Error
()),
nil
)
}
}
...
...
service/user/setting.go
浏览文件 @
4d70f9fa
...
@@ -294,7 +294,7 @@ func (service *AvatarService) Get(c *gin.Context) serializer.Response {
...
@@ -294,7 +294,7 @@ func (service *AvatarService) Get(c *gin.Context) serializer.Response {
// 本地文件头像
// 本地文件头像
if
user
.
Avatar
==
"file"
{
if
user
.
Avatar
==
"file"
{
avatarRoot
:=
model
.
GetSettingByName
(
"avatar_path"
)
avatarRoot
:=
util
.
RelativePath
(
model
.
GetSettingByName
(
"avatar_path"
)
)
sizeToInt
:=
map
[
string
]
string
{
sizeToInt
:=
map
[
string
]
string
{
"s"
:
"0"
,
"s"
:
"0"
,
"m"
:
"1"
,
"m"
:
"1"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录