Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
K
koko
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
koko
Commits
61bfd6c5
Commit
61bfd6c5
authored
May 28, 2019
by
Eric
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] fix bugs
parent
be128fd7
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
5 deletions
+28
-5
sftp.go
pkg/handler/sftp.go
+28
-5
No files found.
pkg/handler/sftp.go
View file @
61bfd6c5
...
@@ -120,15 +120,17 @@ func (fs *userSftpRequests) Filelist(r *sftp.Request) (sftp.ListerAt, error) {
...
@@ -120,15 +120,17 @@ func (fs *userSftpRequests) Filelist(r *sftp.Request) (sftp.ListerAt, error) {
}
}
}
}
fileInfos
,
err
=
sysUserDir
.
client
.
ReadDir
(
realPath
)
switch
r
.
Method
{
switch
r
.
Method
{
case
"List"
:
case
"List"
:
fileInfos
,
err
=
sysUserDir
.
client
.
ReadDir
(
realPath
)
return
fileInfos
,
err
return
fileInfos
,
err
case
"Stat"
:
case
"Stat"
:
return
fileInfos
,
err
fsInfo
,
err
:=
sysUserDir
.
client
.
Stat
(
realPath
)
return
listerat
([]
os
.
FileInfo
{
fsInfo
}),
err
case
"Readlink"
:
case
"Readlink"
:
return
fileInfos
,
err
filename
,
err
:=
sysUserDir
.
client
.
ReadLink
(
realPath
)
fsInfo
:=
&
FakeFile
{
name
:
filename
,
modtime
:
time
.
Now
()
.
UTC
()}
return
listerat
([]
os
.
FileInfo
{
fsInfo
}),
err
}
}
return
fileInfos
,
err
return
fileInfos
,
err
}
}
...
@@ -214,7 +216,6 @@ func (fs *userSftpRequests) Fileread(r *sftp.Request) (io.ReaderAt, error) {
...
@@ -214,7 +216,6 @@ func (fs *userSftpRequests) Fileread(r *sftp.Request) (io.ReaderAt, error) {
func
(
fs
*
userSftpRequests
)
GetSftpClient
(
asset
*
model
.
Asset
,
sysUser
*
model
.
SystemUser
)
(
*
sftp
.
Client
,
error
)
{
func
(
fs
*
userSftpRequests
)
GetSftpClient
(
asset
*
model
.
Asset
,
sysUser
*
model
.
SystemUser
)
(
*
sftp
.
Client
,
error
)
{
logger
.
Debug
(
"Get Sftp Client"
)
logger
.
Debug
(
"Get Sftp Client"
)
info
:=
service
.
GetSystemUserAssetAuthInfo
(
sysUser
.
Id
,
asset
.
Id
)
info
:=
service
.
GetSystemUserAssetAuthInfo
(
sysUser
.
Id
,
asset
.
Id
)
return
CreateSFTPConn
(
sysUser
.
Username
,
info
.
Password
,
info
.
PrivateKey
,
asset
.
Ip
,
strconv
.
Itoa
(
asset
.
Port
))
return
CreateSFTPConn
(
sysUser
.
Username
,
info
.
Password
,
info
.
PrivateKey
,
asset
.
Ip
,
strconv
.
Itoa
(
asset
.
Port
))
}
}
...
@@ -275,6 +276,28 @@ func (su *SysUserDir) ParsePath(path string) string {
...
@@ -275,6 +276,28 @@ func (su *SysUserDir) ParsePath(path string) string {
}
}
type
FakeFile
struct
{
name
string
modtime
time
.
Time
symlink
string
}
func
(
f
*
FakeFile
)
Name
()
string
{
return
f
.
name
}
func
(
f
*
FakeFile
)
Size
()
int64
{
return
int64
(
0
)
}
func
(
f
*
FakeFile
)
Mode
()
os
.
FileMode
{
ret
:=
os
.
FileMode
(
0644
)
if
f
.
symlink
!=
""
{
ret
=
os
.
FileMode
(
0777
)
|
os
.
ModeSymlink
}
return
ret
}
func
(
f
*
FakeFile
)
ModTime
()
time
.
Time
{
return
f
.
modtime
}
func
(
f
*
FakeFile
)
IsDir
()
bool
{
return
false
}
func
(
f
*
FakeFile
)
Sys
()
interface
{}
{
fakeInfo
,
_
:=
os
.
Stat
(
"."
)
return
fakeInfo
.
Sys
()
}
type
listerat
[]
os
.
FileInfo
type
listerat
[]
os
.
FileInfo
func
(
f
listerat
)
ListAt
(
ls
[]
os
.
FileInfo
,
offset
int64
)
(
int
,
error
)
{
func
(
f
listerat
)
ListAt
(
ls
[]
os
.
FileInfo
,
offset
int64
)
(
int
,
error
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment