Hi Phillip,

Can you please try to use *sftp.Client as a pointer instead of sftp.Client? 
In addition, concurrent read configuration provided to sftp client can be 
omitted to reproduce.

23 Ağustos 2023 Çarşamba tarihinde saat 15:37:10 UTC+3 itibarıyla Phillip 
Siessl şunları yazdı:

> Hi 
>
> i have some issues when i try to download a larger zip file (5GB) via the 
> sftp package in go. 
> about 20% of the time it runs through smoothly but the other 80% i get a 
> panic with
> "fatal error: concurrent map writes writing to file" or "fatal error: 
> concurrent map read and map write".
>
> this is the code for the download function: 
>
> func DownloadZip(sc sftp.Client, remoteFile, localFile string) (err error) 
> {
>
> fmt.Fprintf(os.Stdout, "Downloading [%s] to [%s] ...\n", remoteFile, 
> localFile)
> srcFile, err := sc.OpenFile(remoteFile, (os.O_RDONLY))
> if err != nil {
> fmt.Fprintf(os.Stderr, "Unable to open remote file: %v\n", err)
> return
> }
>
> defer srcFile.Close()
> fmt.Println("Create locale file")
> dstFile, err := os.Create(localFile)
> if err != nil {
> fmt.Fprintf(os.Stderr, "Unable to open local file: %v\n", err)
> return
> }
> defer dstFile.Close()
> fmt.Println("Copy remote file")
> bytes, err := io.Copy(dstFile, srcFile)
> if err != nil {
> fmt.Fprintf(os.Stderr, "Unable to download remote file: %v\n", err)
> os.Exit(1)
> }
> fmt.Println("Save local file")
> fmt.Fprintf(os.Stdout, "%d bytes copied\n", bytes)
>
> return
> }
>
>
> If anybody has some ideas i would be very happy. thx
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/f99395c8-a40e-4284-b0de-0525922bcafan%40googlegroups.com.

Reply via email to