大規模ファイルの転送機能を Golang で実装する方法

在Go语言中,可以使用io.Copy()函数来实现大文件传输功能。io.Copy()函数会从源文件(例如,一个io.Reader接口)中读取数据,并将其写入目标文件(例如,一个io.Writer接口)。

大規模ファイル転送機能を実装するには、次の例のように `io.Copy()` 関数を使用できます。

package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
	sourceFile := "./source.txt" // 源文件路径
	destinationFile := "./destination.txt" // 目标文件路径

	err := copyFile(sourceFile, destinationFile)
	if err != nil {
		fmt.Println("文件传输失败:", err)
		return
	}

	fmt.Println("文件传输完成")
}

// 复制文件
func copyFile(sourceFile string, destinationFile string) error {
	// 打开源文件
	src, err := os.Open(sourceFile)
	if err != nil {
		return err
	}
	defer src.Close()

	// 创建目标文件
	dst, err := os.Create(destinationFile)
	if err != nil {
		return err
	}
	defer dst.Close()

	// 复制数据
	_, err = io.Copy(dst, src)
	if err != nil {
		return err
	}

	return nil
}

上のサンプルコードで、copyFile()関数は、ソースファイルとデスティネーションファイルのパスをパラメータに取って、まずソースファイルを開いてデスティネーションファイルを作成し、io.Copy()関数でソースファイルの内容をデスティネーションファイルにコピーしています。

実際の場面では、 ファイルの存在やパーミッションの有無など、より複雑なエラー処理が必要となるので注意してください。ここでは大きなファイル転送の基本的な機能のみを示します。

bannerAds