upload.GetFile
Returns content of a whole file or its part.
Example
const { Api, TelegramClient } = require("telegram");
const { StringSession } = require("telegram/sessions");
const session = new StringSession(""); // You should put your string session here
const client = new TelegramClient(session, apiId, apiHash, {});
(async function run() {
  await client.connect(); // This assumes you have already authenticated with .start()
  const result = await client.invoke(
    new Api.upload.GetFile({
      location: new Api.InputFileLocation({
        volumeId: BigInt("-4156887774564"),
        localId: 43,
        secret: BigInt("-4156887774564"),
        fileReference: Buffer.from("arbitrary data here"),
      }),
      offset: BigInt("-4156887774564"),
      limit: 100,
      precise: true,
      cdnSupported: true,
    })
  );
  console.log(result); // prints the result
})();
import { Api, TelegramClient } from "telegram";
import { StringSession } from "telegram/sessions";
const session = new StringSession(""); // You should put your string session here
const client = new TelegramClient(session, apiId, apiHash, {});
(async function run() {
  await client.connect(); // This assumes you have already authenticated with .start()
  const result: Api.upload.File = await client.invoke(
    new Api.upload.GetFile({
      location: new Api.InputFileLocation({
        volumeId: BigInt("-4156887774564"),
        localId: 43,
        secret: BigInt("-4156887774564"),
        fileReference: Buffer.from("arbitrary data here"),
      }),
      offset: BigInt("-4156887774564"),
      limit: 100,
      precise: true,
      cdnSupported: true,
    })
  );
  console.log(result); // prints the result
})();
Parameters
| Name | Type | Description | 
|---|---|---|
| flags | # | Flags, see TL conditional fields | 
| precise | flags.0?true | Disable some checks on limit and offset values, useful for example to stream videos by keyframes | 
| cdnSupported | flags.1?true | Whether the current client supports CDN downloads | 
| location | InputFileLocation | File location | 
| offset | int | Number of bytes to be skipped | 
| limit | int | Number of bytes to be returned | 
Result
Possible errors
| Code | Type | Description | 
|---|---|---|
| 400 | CHANNEL_INVALID | The provided channel is invalid. | 
| 400 | CHANNEL_PRIVATE | You haven't joined this channel/supergroup. | 
| 400 | FILE_REFERENCE_* | The file reference expired, it must be refreshed. | 
| 406 | FILEREF_UPGRADE_NEEDED | The client has to be updated in order to support file references. | 
| 400 | FILE_ID_INVALID | The provided file id is invalid. | 
| 400 | FILE_REFERENCE_EXPIRED | File reference expired, it must be refetched as described in the documentation. | 
| 400 | LIMIT_INVALID | The provided limit is invalid. | 
| 400 | LOCATION_INVALID | The provided location is invalid. | 
| 400 | MSG_ID_INVALID | Invalid message ID provided. | 
| 400 | OFFSET_INVALID | The provided offset is invalid. | 
| 400 | PEER_ID_INVALID | The provided peer id is invalid. | 
Can bots use this method?
Yes
Related pages
Encrypted CDNs for Speed and Security
How to handle file references.
File references
How to handle file references.