MCPcopy Create free account
hub / github.com/OpenListTeam/OpenList / CreateTempFile

Function CreateTempFile

pkg/utils/file.go:116–139  ·  view source on GitHub ↗

CreateTempFile create temp file from io.ReadCloser, and seek to 0

(r io.Reader, size int64)

Source from the content-addressed store, hash-verified

114
115// CreateTempFile create temp file from io.ReadCloser, and seek to 0
116func CreateTempFile(r io.Reader, size int64) (*os.File, error) {
117 if f, ok := r.(*os.File); ok {
118 return f, nil
119 }
120 f, err := os.CreateTemp(conf.Conf.TempDir, "file-*")
121 if err != nil {
122 return nil, err
123 }
124 readBytes, err := CopyWithBuffer(f, r)
125 if err != nil {
126 _ = os.Remove(f.Name())
127 return nil, errs.NewErr(err, "CreateTempFile failed")
128 }
129 if size > 0 && readBytes != size {
130 _ = os.Remove(f.Name())
131 return nil, errs.NewErr(err, "CreateTempFile failed, incoming stream actual size= %d, expect = %d ", readBytes, size)
132 }
133 _, err = f.Seek(0, io.SeekStart)
134 if err != nil {
135 _ = os.Remove(f.Name())
136 return nil, errs.NewErr(err, "CreateTempFile failed, can't seek to 0 ")
137 }
138 return f, nil
139}
140
141// GetFileType get file type
142func GetFileType(filename string) int {

Callers 2

PutMethod · 0.92
CacheFullAndWriterMethod · 0.92

Calls 5

NewErrFunction · 0.92
CopyWithBufferFunction · 0.85
RemoveMethod · 0.65
NameMethod · 0.65
SeekMethod · 0.45

Tested by

no test coverage detected