Media Upload
Класс-помощник со статическими методами для загрузки файлов.
path
Метод для загрузки медиа-файла по локальному пути.
ts
ctx.sendDocument(await MediaUpload.path("./package.json"));
// или с указанием имени файла
ctx.sendDocument(await MediaUpload.path("./package.json", "some-other.json"));
Если имя файла не указано, в качестве имени файла используется исходное имя файла.
url
Метод для загрузки медиа-файла по URL (также с опциями fetch).
ts
ctx.sendPhoto(await MediaUpload.url("https://example.com/cat.png"));
// или с указанием имени файла
ctx.sendPhoto(
await MediaUpload.url("https://example.com/cat.png", "cute-cat.png")
);
// или с именем файла и опциями fetch (например, заголовками)
ctx.sendPhoto(
await MediaUpload.url("https://example.com/cat.png", "cute-cat.png", {
headers: {
Authorization: "Bearer gramio",
},
})
);
Если имя файла не указано, в качестве имени файла используется последняя часть после /
.
buffer
Метод для загрузки медиа-файла из Buffer или ArrayBuffer.
ts
const res = await fetch("https://...");
ctx.sendDocument(
MediaUpload.buffer(await res.arrayBuffer(), "from-buffer.json")
);
По умолчанию имя файла - file.buffer
.
stream
Метод для загрузки медиа-файла из потока Readable
.
ts
ctx.sendDocument(
await MediaUpload.stream(
fs.createReadStream("./cute-cat.png"),
"the-same-cute-cat.png"
)
);
По умолчанию имя файла - file.stream
.
text
Метод для загрузки медиа-файла из текстового содержимого.
ts
ctx.sendDocument(MediaUpload.text("GramIO лучший!", "правда.txt"));
По умолчанию имя файла - text.txt
.