我正在尝试将整个目录上传到服务器。它适用于小目录,但有 100 多张图片,它返回“许多打开的文件”错误。我在读取文件后立即关闭该文件。知道如何解决这个问题吗?
这是我的代码
func uploadDir(path string) error {
dir, err := os.Open(path)
if err != nil {
return err
}
files, err := dir.Readdirnames(-1)
if err != nil {
return err
}
dir.Close()
errChan := make(chan error)
resChan := make(chan *client.PutResult)
remaining := len(files)
for _, file := range files {
file := file
go func() {
file, err := os.Open(path + "/" + file)
if err != nil {
errChan <- err
}
c := client.NewClient(os.Getenv("DROPS_SERVER"))
res, err := c.Upload(client.NewUploadHandleFromReader(file))
file.Close()
if err != nil {
errChan <- err
}
resChan <- res
}()
}
for {
select {
case res := <-resChan:
log.Println(res)
remaining--
case err := <-errChan:
if err != nil {
return err
}
}
if remaining == 0 {
break
}
}
return nil
}
慕雪6442864
相关分类