mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-08 17:13:56 +00:00
Add instruction how to upload files
This commit is contained in:
parent
d7a35f50a9
commit
fa6732542d
8 changed files with 74 additions and 1 deletions
67
docs/api/sending_files.md
Normal file
67
docs/api/sending_files.md
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
# How to upload file?
|
||||
|
||||
As says [official Telegram Bot API documentation](https://core.telegram.org/bots/api#sending-files) there are three ways to send files (photos, stickers, audio, media, etc.):
|
||||
|
||||
If the file is already stored somewhere on the Telegram servers or file is available by the URL, you don't need to reupload it.
|
||||
But if you need to upload new file just use subclasses of [InputFile](./types/input_file.md). Here is available two different types of input file:
|
||||
|
||||
- `#!python3 FSInputFile` - [uploading from file system](#upload-from-file-system)
|
||||
- `#!python3 BufferedInputFile` - [uploading from buffer](#upload-from-buffer)
|
||||
|
||||
!!! warning "Be respectful with Telegram"
|
||||
Instances of `InputFile` is reusable. That's mean you can create instance of InputFile and sent this file multiple times but Telegram is not recommend to do that and when you upload file once just save their `file_id` and use it in next times.
|
||||
|
||||
## Upload from file system
|
||||
By first step you will need to import InputFile wrapper:
|
||||
```python3
|
||||
from aiogram.types import FSInputFile
|
||||
```
|
||||
|
||||
Then you can use it:
|
||||
```python3
|
||||
cat = FSInputFile("cat.png")
|
||||
agenda = FSInputFile("my-document.pdf", filename="agenda-2019-11-19.pdf")
|
||||
```
|
||||
|
||||
### FSInputFile(...)
|
||||
|
||||
|Argument|Type|Description|
|
||||
|---|---|---|
|
||||
| path | `#!python3 Union[str, Path]` | File path |
|
||||
| filename | `#!python3 Optional[str]` | Custom filename to be presented to Telegram |
|
||||
| chunk_size | `#!python3 int` | File chunks size (Default: `64 kb`) |
|
||||
|
||||
## Upload from buffer
|
||||
|
||||
Files can be also passed from buffer (For example you generate image using [Pillow](https://pillow.readthedocs.io/en/stable/) and the want's to sent it to the Telegram):
|
||||
|
||||
Import wrapper:
|
||||
|
||||
```python3
|
||||
from aiogram.types import BufferedInputFile
|
||||
```
|
||||
|
||||
And then you can use it:
|
||||
```python3
|
||||
text_file = BufferedInputFile(b"Hello, world!", filename="file.txt")
|
||||
```
|
||||
|
||||
### BufferedInputFile(...)
|
||||
|Argument|Type|Description|
|
||||
|---|---|---|
|
||||
| buffer | `#!python3 bytes` | File path |
|
||||
| filename | `#!python3 str` | Custom filename to be presented to Telegram (Required) |
|
||||
| chunk_size | `#!python3 int` | File chunks size (Default: `64 kb`) |
|
||||
|
||||
Also you can read buffer from file:
|
||||
|
||||
```python3
|
||||
file = BufferedInputFile.from_file("file.txt")
|
||||
```
|
||||
|
||||
### BufferedInputFile.from_file(...)
|
||||
|Argument|Type|Description|
|
||||
|---|---|---|
|
||||
| path | `#!python3 Union[str, Path]` | File path |
|
||||
| filename | `#!python3 Optional[str]` | Custom filename to be presented to Telegram |
|
||||
| chunk_size | `#!python3 int` | File chunks size (Default: `64 kb`) |
|
||||
|
|
@ -14,5 +14,5 @@ This object represents the contents of a file to be uploaded. Must be posted usi
|
|||
- `from aiogram.api.types.input_file import InputFile`
|
||||
|
||||
## Related pages:
|
||||
|
||||
- [Official documentation](https://core.telegram.org/bots/api#inputfile)
|
||||
- [How to upload file?](../sending_files.md)
|
||||
|
|
|
|||
|
|
@ -30,3 +30,4 @@ Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound) to be
|
|||
|
||||
- [Official documentation](https://core.telegram.org/bots/api#inputmediaanimation)
|
||||
- [aiogram.types.InputFile](../types/input_file.md)
|
||||
- [How to upload file?](../sending_files.md)
|
||||
|
|
|
|||
|
|
@ -30,3 +30,4 @@ Represents an audio file to be treated as music to be sent.
|
|||
|
||||
- [Official documentation](https://core.telegram.org/bots/api#inputmediaaudio)
|
||||
- [aiogram.types.InputFile](../types/input_file.md)
|
||||
- [How to upload file?](../sending_files.md)
|
||||
|
|
|
|||
|
|
@ -27,3 +27,4 @@ Represents a general file to be sent.
|
|||
|
||||
- [Official documentation](https://core.telegram.org/bots/api#inputmediadocument)
|
||||
- [aiogram.types.InputFile](../types/input_file.md)
|
||||
- [How to upload file?](../sending_files.md)
|
||||
|
|
|
|||
|
|
@ -26,3 +26,4 @@ Represents a photo to be sent.
|
|||
|
||||
- [Official documentation](https://core.telegram.org/bots/api#inputmediaphoto)
|
||||
- [aiogram.types.InputFile](../types/input_file.md)
|
||||
- [How to upload file?](../sending_files.md)
|
||||
|
|
|
|||
|
|
@ -31,3 +31,4 @@ Represents a video to be sent.
|
|||
|
||||
- [Official documentation](https://core.telegram.org/bots/api#inputmediavideo)
|
||||
- [aiogram.types.InputFile](../types/input_file.md)
|
||||
- [How to upload file?](../sending_files.md)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue