Go embed.FS: встроить файлы в бинарник
Пакет embed в Go позволяет включить статические файлы в бинарник во время сборки. Это удобно для шаблонов, конфигураций по умолчанию и ресурсов, которые должны поставляться вместе с программой без отдельной папки рядом с executable. Возможность доступна начиная с Go 1.16; маска должна совпасть хотя бы с одним файлом в исходном пакете.
Прочитать файл из embed.FS
Положите текст в assets/message.txt, затем используйте директиву //go:embed перед переменной:
package main
import (
"embed"
"fmt"
"log"
)
//go:embed assets/message.txt
var assets embed.FS
func main() {
message, err := assets.ReadFile("assets/message.txt")
if err != nil {
log.Fatal(err)
}
fmt.Print(string(message))
}Путь в ReadFile указывается относительно директории пакета, где объявлена переменная. Встроенные данные доступны только для чтения и включаются в бинарник; не размещайте там секреты, которые должны меняться между окружениями. Директивы //go:embed распознаются компилятором, поэтому не переносите их в обычный комментарий или строку.
Официальная документация: пакет embed.