Skip to content

Commit 39d2c34

Browse files
authored
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
1 parent 3e4a48c commit 39d2c34

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

agent/utils/convert/convert.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,17 @@ func MediaFile(inputFile, outputFile, outputFormat string, deleteSource bool) (s
5454
if !flag {
5555
return status, fmt.Errorf("ffmpeg not found, cannot convert file")
5656
}
57-
logFile, logErr := os.OpenFile(filepath.Join(global.Dir.ConvertLogDir, "convert.log"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
58-
allLogFile, allErr := os.OpenFile(filepath.Join(global.Dir.ConvertLogDir, "convert-all.log"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
59-
60-
if logErr != nil || allErr != nil {
61-
return status, fmt.Errorf("cannot open log file: %w", err)
57+
logFile, err := os.OpenFile(filepath.Join(global.Dir.ConvertLogDir, "convert.log"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
58+
if err != nil {
59+
return status, fmt.Errorf("cannot open convert.log: %w", err)
6260
}
6361
defer logFile.Close()
62+
63+
allLogFile, err := os.OpenFile(filepath.Join(global.Dir.ConvertLogDir, "convert-all.log"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
64+
if err != nil {
65+
return status, fmt.Errorf("cannot open convert-all.log: %w", err)
66+
}
67+
defer allLogFile.Close()
6468
args, fileType, err := buildFFmpegArgs(inputFile, outputFile, outputFormat)
6569
if err != nil {
6670
return status, fmt.Errorf("FFmpeg args failed: %w", err)

agent/utils/files/file_op.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,11 @@ func (f FileOp) CreateDirWithPath(isDir bool, pathItem string) (string, error) {
120120
}
121121

122122
func (f FileOp) CreateFile(dst string) error {
123-
if _, err := f.Fs.Create(dst); err != nil {
123+
file, err := f.Fs.Create(dst)
124+
if err != nil {
124125
return err
125126
}
126-
return nil
127+
return file.Close()
127128
}
128129

129130
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
822823
if err != nil {
823824
return err
824825
}
826+
defer out.Close()
825827

826828
switch cType {
827829
case Zip:
@@ -936,6 +938,7 @@ func (f FileOp) decompressWithSDK(srcFile string, dst string, cType CompressType
936938
if err != nil {
937939
return err
938940
}
941+
defer input.Close()
939942
if err := format.Extract(context.Background(), input, nil, handler); err != nil {
940943
return err
941944
}
@@ -1007,6 +1010,7 @@ func ZipFile(files []archiver.File, dst afero.File) error {
10071010
return err
10081011
}
10091012
_, err = io.Copy(w, fileReader)
1013+
fileReader.Close()
10101014
if err != nil {
10111015
return err
10121016
}

0 commit comments

Comments
 (0)