Files
Telegram supports specifying files in many different formats. In order to accommodate them all, there are multiple structs and type aliases required.
All of these types implement the RequestFileData
interface.
Type | Description |
---|---|
FilePath | A local path to a file |
FileID | Existing file ID on Telegram's servers |
FileURL | URL to file, must be served with expected MIME type |
FileReader | Use an io.Reader to provide a file. Lazily read to save memory. |
FileBytes | []byte containing file data. Prefer to use FileReader to save memory. |
FilePath
A path to a local file.
file := tgbotapi.FilePath("tests/image.jpg")
FileID
An ID previously uploaded to Telegram. IDs may only be reused by the same bot that received them. Additionally, thumbnail IDs cannot be reused.
file := tgbotapi.FileID("AgACAgIAAxkDAALesF8dCjAAAa_…")
FileURL
A URL to an existing resource. It must be served with a correct MIME type to work as expected.
file := tgbotapi.FileURL("https://i.imgur.com/unQLJIb.jpg")
FileReader
Use an io.Reader
to provide file contents as needed. Requires a filename for
the virtual file.
var reader io.Reader
file := tgbotapi.FileReader{
Name: "image.jpg",
Reader: reader,
}
FileBytes
Use a []byte
to provide file contents. Generally try to avoid this as it
results in high memory usage. Also requires a filename for the virtual file.
var data []byte
file := tgbotapi.FileBytes{
Name: "image.jpg",
Bytes: data,
}