mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/1Panel-dev/1Panel.git
synced 2026-09-20 08:03:55 +08:00
fix: ensure proper resource management in file operations (#12358)
* fix: Ensure proper resource management in file operations by closing files after creation and compression * fix: Improve error handling for log file operations in MediaFile function
This commit is contained in:
@@ -54,13 +54,17 @@ func MediaFile(inputFile, outputFile, outputFormat string, deleteSource bool) (s
|
||||
if !flag {
|
||||
return status, fmt.Errorf("ffmpeg not found, cannot convert file")
|
||||
}
|
||||
logFile, logErr := os.OpenFile(filepath.Join(global.Dir.ConvertLogDir, "convert.log"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
allLogFile, allErr := os.OpenFile(filepath.Join(global.Dir.ConvertLogDir, "convert-all.log"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
|
||||
if logErr != nil || allErr != nil {
|
||||
return status, fmt.Errorf("cannot open log file: %w", err)
|
||||
logFile, err := os.OpenFile(filepath.Join(global.Dir.ConvertLogDir, "convert.log"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
if err != nil {
|
||||
return status, fmt.Errorf("cannot open convert.log: %w", err)
|
||||
}
|
||||
defer logFile.Close()
|
||||
|
||||
allLogFile, err := os.OpenFile(filepath.Join(global.Dir.ConvertLogDir, "convert-all.log"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
if err != nil {
|
||||
return status, fmt.Errorf("cannot open convert-all.log: %w", err)
|
||||
}
|
||||
defer allLogFile.Close()
|
||||
args, fileType, err := buildFFmpegArgs(inputFile, outputFile, outputFormat)
|
||||
if err != nil {
|
||||
return status, fmt.Errorf("FFmpeg args failed: %w", err)
|
||||
|
||||
@@ -120,10 +120,11 @@ func (f FileOp) CreateDirWithPath(isDir bool, pathItem string) (string, error) {
|
||||
}
|
||||
|
||||
func (f FileOp) CreateFile(dst string) error {
|
||||
if _, err := f.Fs.Create(dst); err != nil {
|
||||
file, err := f.Fs.Create(dst)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
return file.Close()
|
||||
}
|
||||
|
||||
func (f FileOp) CreateFileWithMode(dst string, mode fs.FileMode) error {
|
||||
@@ -822,6 +823,7 @@ func (f FileOp) Compress(srcRiles []string, dst string, name string, cType Compr
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
switch cType {
|
||||
case Zip:
|
||||
@@ -936,6 +938,7 @@ func (f FileOp) decompressWithSDK(srcFile string, dst string, cType CompressType
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer input.Close()
|
||||
if err := format.Extract(context.Background(), input, nil, handler); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1007,6 +1010,7 @@ func ZipFile(files []archiver.File, dst afero.File) error {
|
||||
return err
|
||||
}
|
||||
_, err = io.Copy(w, fileReader)
|
||||
fileReader.Close()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user