|
@@ -4,6 +4,7 @@ import (
|
|
"crypto/sha256"
|
|
"crypto/sha256"
|
|
"encoding/hex"
|
|
"encoding/hex"
|
|
"encoding/json"
|
|
"encoding/json"
|
|
|
|
+ "errors"
|
|
"io"
|
|
"io"
|
|
"io/fs"
|
|
"io/fs"
|
|
"log"
|
|
"log"
|
|
@@ -144,21 +145,21 @@ func FileSystemInit() {
|
|
//Create user root if not exists
|
|
//Create user root if not exists
|
|
err := os.MkdirAll(*root_directory+"users/", 0755)
|
|
err := os.MkdirAll(*root_directory+"users/", 0755)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Failed to create system storage root.")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Failed to create system storage root", err)
|
|
panic(err)
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
|
|
//Create database table if not exists
|
|
//Create database table if not exists
|
|
err = sysdb.NewTable("fs")
|
|
err = sysdb.NewTable("fs")
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Failed to create table for file system")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Failed to create table for file system", err)
|
|
panic(err)
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
|
|
//Create new table for sort preference
|
|
//Create new table for sort preference
|
|
err = sysdb.NewTable("fs-sortpref")
|
|
err = sysdb.NewTable("fs-sortpref")
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Failed to create table for file system")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Failed to create table for file system", err)
|
|
panic(err)
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -211,10 +212,10 @@ func FileSystemInit() {
|
|
go func() {
|
|
go func() {
|
|
//Start version history cleaning in background
|
|
//Start version history cleaning in background
|
|
system_fs_clearVersionHistories()
|
|
system_fs_clearVersionHistories()
|
|
- log.Println("[LocVer] Startup File Version History Cleaning Completed")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Startup File Version History Cleaning Completed", nil)
|
|
|
|
|
|
}()
|
|
}()
|
|
- log.Println("Started File Version History Cleaning in background")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Started File Version History Cleaning in background", nil)
|
|
|
|
|
|
nightlyManager.RegisterNightlyTask(system_fs_clearVersionHistories)
|
|
nightlyManager.RegisterNightlyTask(system_fs_clearVersionHistories)
|
|
}
|
|
}
|
|
@@ -443,7 +444,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
upgrader.CheckOrigin = func(r *http.Request) bool { return true }
|
|
upgrader.CheckOrigin = func(r *http.Request) bool { return true }
|
|
c, err := upgrader.Upgrade(w, r, nil)
|
|
c, err := upgrader.Upgrade(w, r, nil)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Failed to upgrade websocket connection: ", err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Failed to upgrade websocket connection: ", err)
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
w.Write([]byte("500 WebSocket upgrade failed"))
|
|
w.Write([]byte("500 WebSocket upgrade failed"))
|
|
return
|
|
return
|
|
@@ -466,7 +467,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
case <-ticker.C:
|
|
case <-ticker.C:
|
|
if time.Now().Unix()-lastChunkArrivalTime > 300 {
|
|
if time.Now().Unix()-lastChunkArrivalTime > 300 {
|
|
//Already 5 minutes without new data arraival. Stop connection
|
|
//Already 5 minutes without new data arraival. Stop connection
|
|
- log.Println("Upload WebSocket connection timeout. Disconnecting.")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Upload WebSocket connection timeout. Disconnecting.", errors.New("websocket connection timeout"))
|
|
c.WriteControl(8, []byte{}, time.Now().Add(time.Second))
|
|
c.WriteControl(8, []byte{}, time.Now().Add(time.Second))
|
|
time.Sleep(1 * time.Second)
|
|
time.Sleep(1 * time.Second)
|
|
c.Close()
|
|
c.Close()
|
|
@@ -481,7 +482,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
mt, message, err := c.ReadMessage()
|
|
mt, message, err := c.ReadMessage()
|
|
if err != nil {
|
|
if err != nil {
|
|
//Connection closed by client. Clear the tmp folder and exit
|
|
//Connection closed by client. Clear the tmp folder and exit
|
|
- log.Println("Upload terminated by client. Cleaning tmp folder.")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Upload terminated by client. Cleaning tmp folder", err)
|
|
//Clear the tmp folder
|
|
//Clear the tmp folder
|
|
time.Sleep(1 * time.Second)
|
|
time.Sleep(1 * time.Second)
|
|
if isHugeFile {
|
|
if isHugeFile {
|
|
@@ -515,7 +516,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
if writeErr != nil {
|
|
if writeErr != nil {
|
|
//Unable to write block. Is the tmp folder fulled?
|
|
//Unable to write block. Is the tmp folder fulled?
|
|
- log.Println("[Upload] Upload chunk write failed: " + err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Upload chunk write failed: "+err.Error(), err)
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Write file chunk to disk failed\"}`))
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Write file chunk to disk failed\"}`))
|
|
|
|
|
|
//Close the connection
|
|
//Close the connection
|
|
@@ -576,7 +577,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
c.WriteMessage(1, []byte("next"))
|
|
c.WriteMessage(1, []byte("next"))
|
|
|
|
|
|
}
|
|
}
|
|
- //log.Println("recv:", len(message), "type", mt)
|
|
|
|
|
|
+ //systemWideLogger.PrintAndLog("File System", ("recv:", len(message), "type", mt)
|
|
}
|
|
}
|
|
|
|
|
|
//Try to decode the location if possible
|
|
//Try to decode the location if possible
|
|
@@ -601,7 +602,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
}
|
|
}
|
|
|
|
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Failed to open file:", err)
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Failed to open file:"+err.Error(), err)
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to open destination file\"}`))
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to open destination file\"}`))
|
|
c.WriteControl(8, []byte{}, time.Now().Add(time.Second))
|
|
c.WriteControl(8, []byte{}, time.Now().Add(time.Second))
|
|
time.Sleep(1 * time.Second)
|
|
time.Sleep(1 * time.Second)
|
|
@@ -618,7 +619,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
}
|
|
}
|
|
|
|
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Failed to open Source Chunk", filesrc, " with error ", err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Failed to open Source Chunk"+filesrc+" with error "+err.Error(), err)
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to open Source Chunk\"}`))
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to open Source Chunk\"}`))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -646,7 +647,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
if err != nil {
|
|
if err != nil {
|
|
// Could not obtain stat, handle error
|
|
// Could not obtain stat, handle error
|
|
- log.Println("Failed to validate uploaded file: ", mergeFileLocation, ". Error Message: ", err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Failed to validate uploaded file: "+mergeFileLocation+". Error Message: "+err.Error(), err)
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to validate uploaded file\"}`))
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to validate uploaded file\"}`))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -665,7 +666,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
//This is local buffer file. Upload to dest fsh
|
|
//This is local buffer file. Upload to dest fsh
|
|
f, err := os.Open(mergeFileLocation)
|
|
f, err := os.Open(mergeFileLocation)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Failed to open buffered file at ", mergeFileLocation, " with error ", err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Failed to open buffered file at "+mergeFileLocation+" with error "+err.Error(), err)
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to open buffered object\"}`))
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to open buffered object\"}`))
|
|
f.Close()
|
|
f.Close()
|
|
return
|
|
return
|
|
@@ -673,7 +674,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
err = fsh.FileSystemAbstraction.WriteStream(decodedUploadLocation, f, 0775)
|
|
err = fsh.FileSystemAbstraction.WriteStream(decodedUploadLocation, f, 0775)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Failed to write to file system: ", fsh.UUID, " with error ", err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Failed to write to file system: "+fsh.UUID+" with error "+err.Error(), err)
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to upload to remote file system\"}`))
|
|
c.WriteMessage(1, []byte(`{\"error\":\"Failed to upload to remote file system\"}`))
|
|
f.Close()
|
|
f.Close()
|
|
return
|
|
return
|
|
@@ -685,7 +686,7 @@ func system_fs_handleLowMemoryUpload(w http.ResponseWriter, r *http.Request) {
|
|
}
|
|
}
|
|
|
|
|
|
//Log the upload filename
|
|
//Log the upload filename
|
|
- log.Println(userinfo.Username + " uploaded a file: " + filepath.Base(decodedUploadLocation))
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", userinfo.Username+" uploaded a file: "+filepath.Base(decodedUploadLocation), nil)
|
|
|
|
|
|
//Set owner of the new uploaded file
|
|
//Set owner of the new uploaded file
|
|
userinfo.SetOwnerOfFile(fsh, unescapedPath)
|
|
userinfo.SetOwnerOfFile(fsh, unescapedPath)
|
|
@@ -738,14 +739,14 @@ func system_fs_handleUpload(w http.ResponseWriter, r *http.Request) {
|
|
err = r.ParseMultipartForm(int64(*upload_buf) << 20)
|
|
err = r.ParseMultipartForm(int64(*upload_buf) << 20)
|
|
if err != nil {
|
|
if err != nil {
|
|
//Filesize too big
|
|
//Filesize too big
|
|
- log.Println(err)
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Upload file size too big", err)
|
|
common.SendErrorResponse(w, "File too large")
|
|
common.SendErrorResponse(w, "File too large")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
file, handler, err := r.FormFile("file")
|
|
file, handler, err := r.FormFile("file")
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Error Retrieving File from upload by user: " + userinfo.Username)
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Error Retrieving File from upload by user: "+userinfo.Username, err)
|
|
common.SendErrorResponse(w, "Unable to parse file from upload")
|
|
common.SendErrorResponse(w, "Unable to parse file from upload")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -823,12 +824,12 @@ func system_fs_handleUpload(w http.ResponseWriter, r *http.Request) {
|
|
//Move the file to destination file location
|
|
//Move the file to destination file location
|
|
if *enable_asyncFileUpload {
|
|
if *enable_asyncFileUpload {
|
|
//Use Async upload method
|
|
//Use Async upload method
|
|
- log.Println("[File System] AsyncFileUpload flag has been deprecated. Falling back to blocking upload.")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "AsyncFileUpload flag has been deprecated. Falling back to blocking upload.", errors.New("call to deprecated flag: asyncFileUpload"))
|
|
}
|
|
}
|
|
|
|
|
|
err = targetFs.WriteStream(destFilepath, file, 0775)
|
|
err = targetFs.WriteStream(destFilepath, file, 0775)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println(err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Write stream to destination file system abstraction from upload failed", err)
|
|
}
|
|
}
|
|
file.Close()
|
|
file.Close()
|
|
|
|
|
|
@@ -847,7 +848,7 @@ func system_fs_handleUpload(w http.ResponseWriter, r *http.Request) {
|
|
*/
|
|
*/
|
|
|
|
|
|
//Fnish upload. Fix the tmp filename
|
|
//Fnish upload. Fix the tmp filename
|
|
- log.Println(userinfo.Username + " uploaded a file: " + handler.Filename)
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", userinfo.Username+" uploaded a file: "+handler.Filename, nil)
|
|
|
|
|
|
//Do upload finishing stuff
|
|
//Do upload finishing stuff
|
|
|
|
|
|
@@ -1085,7 +1086,7 @@ func system_fs_restoreFile(w http.ResponseWriter, r *http.Request) {
|
|
originalFilename := strings.TrimSuffix(filepath.Base(realpath), filepath.Ext(filepath.Base(realpath)))
|
|
originalFilename := strings.TrimSuffix(filepath.Base(realpath), filepath.Ext(filepath.Base(realpath)))
|
|
restoreFolderRoot := filepath.Dir(filepath.Dir(filepath.Dir(realpath)))
|
|
restoreFolderRoot := filepath.Dir(filepath.Dir(filepath.Dir(realpath)))
|
|
targetPath := filepath.ToSlash(filepath.Join(restoreFolderRoot, originalFilename))
|
|
targetPath := filepath.ToSlash(filepath.Join(restoreFolderRoot, originalFilename))
|
|
- //log.Println(targetPath)
|
|
|
|
|
|
+ //systemWideLogger.PrintAndLog("File System", (targetPath)
|
|
fshAbs.Rename(realpath, targetPath)
|
|
fshAbs.Rename(realpath, targetPath)
|
|
|
|
|
|
//Check if the parent dir has no more fileds. If yes, remove it
|
|
//Check if the parent dir has no more fileds. If yes, remove it
|
|
@@ -1217,7 +1218,7 @@ func system_fs_handleNewObjects(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
jsonString, err := json.Marshal(newItemList)
|
|
jsonString, err := json.Marshal(newItemList)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("*File System* Unable to parse JSON string for new item list!")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Unable to parse JSON string for new item list", err)
|
|
common.SendErrorResponse(w, "Unable to parse new item list. See server log for more information.")
|
|
common.SendErrorResponse(w, "Unable to parse new item list. See server log for more information.")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -1274,7 +1275,7 @@ func system_fs_handleNewObjects(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
err = fshAbs.WriteFile(newfilePath, defaultFileCotent, 0775)
|
|
err = fshAbs.WriteFile(newfilePath, defaultFileCotent, 0775)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("[File System] Unable to create new file: " + err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Unable to create new file: "+err.Error(), err)
|
|
common.SendErrorResponse(w, err.Error())
|
|
common.SendErrorResponse(w, err.Error())
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -1330,7 +1331,7 @@ func system_fs_handleWebSocketOpr(w http.ResponseWriter, r *http.Request) {
|
|
decodedSourceFiles, _ := url.QueryUnescape(vsrcFiles)
|
|
decodedSourceFiles, _ := url.QueryUnescape(vsrcFiles)
|
|
err = json.Unmarshal([]byte(decodedSourceFiles), &sourceFiles)
|
|
err = json.Unmarshal([]byte(decodedSourceFiles), &sourceFiles)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("Source file JSON parse error.", err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Websocket file operation source file JSON parse error", err)
|
|
common.SendErrorResponse(w, "Source file JSON parse error.")
|
|
common.SendErrorResponse(w, "Source file JSON parse error.")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -1356,7 +1357,7 @@ func system_fs_handleWebSocketOpr(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
//Permission checking
|
|
//Permission checking
|
|
if !userinfo.CanWrite(vdestFile) {
|
|
if !userinfo.CanWrite(vdestFile) {
|
|
- log.Println("Access denied for " + userinfo.Username + " try to access " + vdestFile)
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Access denied for "+userinfo.Username+" try to access "+vdestFile, nil)
|
|
w.WriteHeader(http.StatusForbidden)
|
|
w.WriteHeader(http.StatusForbidden)
|
|
w.Write([]byte("403 - Access Denied"))
|
|
w.Write([]byte("403 - Access Denied"))
|
|
return
|
|
return
|
|
@@ -1366,7 +1367,7 @@ func system_fs_handleWebSocketOpr(w http.ResponseWriter, r *http.Request) {
|
|
if operation == "move" || operation == "copy" || operation == "zip" || operation == "unzip" {
|
|
if operation == "move" || operation == "copy" || operation == "zip" || operation == "unzip" {
|
|
|
|
|
|
} else {
|
|
} else {
|
|
- log.Println("This file operation is not supported on WebSocket file operations endpoint. Please use the legacy endpoint instead. Received: ", operation)
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "This file operation is not supported on WebSocket file operations endpoint. Please use the legacy endpoint instead. Received: "+operation, errors.New("operaiton not supported on websocket endpoint"))
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
w.Write([]byte("500 - Not supported operation"))
|
|
w.Write([]byte("500 - Not supported operation"))
|
|
return
|
|
return
|
|
@@ -1468,7 +1469,7 @@ func system_fs_handleWebSocketOpr(w http.ResponseWriter, r *http.Request) {
|
|
f, _ := os.Open(zipDestPath)
|
|
f, _ := os.Open(zipDestPath)
|
|
err = destFshAbs.WriteStream(outputFilename, f, 0775)
|
|
err = destFshAbs.WriteStream(outputFilename, f, 0775)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("[File System] Zip write to remote file system error: ", err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Zip write to remote file system with driver"+destFsh.Filesystem+" failed", err)
|
|
}
|
|
}
|
|
f.Close()
|
|
f.Close()
|
|
|
|
|
|
@@ -1859,7 +1860,7 @@ func system_fs_handleOpr(w http.ResponseWriter, r *http.Request) {
|
|
targetNewName := filepath.Join(filepath.Dir(rsrcFile), thisFilename)
|
|
targetNewName := filepath.Join(filepath.Dir(rsrcFile), thisFilename)
|
|
err = srcFshAbs.Rename(rsrcFile, targetNewName)
|
|
err = srcFshAbs.Rename(rsrcFile, targetNewName)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println(err)
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "File rename failed", err)
|
|
common.SendErrorResponse(w, err.Error())
|
|
common.SendErrorResponse(w, err.Error())
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -2502,7 +2503,7 @@ func system_fs_handleList(w http.ResponseWriter, r *http.Request) {
|
|
os.MkdirAll(filepath.Clean(realpath), 0775)
|
|
os.MkdirAll(filepath.Clean(realpath), 0775)
|
|
} else {
|
|
} else {
|
|
//Folder not exists
|
|
//Folder not exists
|
|
- log.Println("[File Explorer] Requested path: ", realpath, " does not exists!")
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Requested path: "+realpath+" does not exists", nil)
|
|
common.SendErrorResponse(w, "Folder not exists")
|
|
common.SendErrorResponse(w, "Folder not exists")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -2516,7 +2517,7 @@ func system_fs_handleList(w http.ResponseWriter, r *http.Request) {
|
|
//Check for really special exception in where the path contains [ or ] which cannot be handled via Golang Glob function
|
|
//Check for really special exception in where the path contains [ or ] which cannot be handled via Golang Glob function
|
|
files, err := fshAbs.Glob(realpath + "/*")
|
|
files, err := fshAbs.Glob(realpath + "/*")
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("[File System] Unable to list dir: " + err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Unable to list dir: "+err.Error(), err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
var shortCutInfo *shortcut.ShortcutData = nil
|
|
var shortCutInfo *shortcut.ShortcutData = nil
|
|
@@ -3178,14 +3179,14 @@ func bufferRemoteFileToLocal(targetFsh *filesystem.FileSystemHandler, rpath stri
|
|
newBufferFilename := getFsBufferFilepath(rpath, keepOriginalName)
|
|
newBufferFilename := getFsBufferFilepath(rpath, keepOriginalName)
|
|
src, err := targetFsh.FileSystemAbstraction.ReadStream(rpath)
|
|
src, err := targetFsh.FileSystemAbstraction.ReadStream(rpath)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("[File System] Buffer from remote to local failed: ", err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Buffer from remote to local failed: "+err.Error(), err)
|
|
return "", err
|
|
return "", err
|
|
}
|
|
}
|
|
defer src.Close()
|
|
defer src.Close()
|
|
|
|
|
|
dest, err := os.OpenFile(newBufferFilename, os.O_CREATE|os.O_WRONLY, 0775)
|
|
dest, err := os.OpenFile(newBufferFilename, os.O_CREATE|os.O_WRONLY, 0775)
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("[File System] Buffer from remote to local failed: ", err.Error())
|
|
|
|
|
|
+ systemWideLogger.PrintAndLog("File System", "Buffer from remote to local failed: "+err.Error(), err)
|
|
return "", err
|
|
return "", err
|
|
}
|
|
}
|
|
io.Copy(dest, src)
|
|
io.Copy(dest, src)
|