Documentation

File Operations

Learn how to manage files using the Get Pronto SDK. This guide covers uploading, listing, retrieving, and deleting files.

Available Methods

  • Upload File - Upload a file to your Get Pronto account.
  • List Files - Retrieve a paginated list of files in your account.
  • Get File - Retrieve metadata for a specific file by its ID.
  • Delete File - Permanently delete a file from your account.

File Metadata

File operations return a FileMetadata object with the following structure:

typescript
type FileMetadata = {
    id: string;
  filename: string;
  mimetype: string;
  size: number;
  createdAt: string;
  url: string;
};

Upload File

Upload a file to your Get Pronto account.

Method Signature

typescript
upload(file: File | Buffer | string, options?: { filename?: string; mimeType?: string }): Promise<FileMetadata>

Supported Input Types

TypeDescription
FileBrowser File object
BufferNode.js Buffer object
stringFile path (Node.js), data URL, or remote URL

Options

OptionTypeDescription
filenamestringCustom filename for the uploaded file
mimeTypestringOverride the file's MIME type

Examples

Local file Upload

typescript
// Upload from local file path
try {
  const result = await client.files.upload("./path/to/image.jpg");
  console.log("File uploaded:", result.file);
} catch (error) {
  console.error("Upload failed:", error);
}

// Upload with custom filename
const result = await client.files.upload("./image.jpg", {
  filename: "custom-name.jpg"
});

Remote file Upload

typescript
// Upload from remote URL
try {
  const result = await client.files.upload("https://example.com/image.jpg");
  console.log("File uploaded:", result.file);
} catch (error) {
  console.error("Upload failed:", error);
}

List Files

Retrieve a paginated list of files in your account.

Method Signature

typescript
list(options?: { page?: number; pageSize?: number }): Promise<PaginatedResponse<FileMetadata>>

Options

OptionTypeDescription
pagenumberPage number (default: 1)
pageSizenumberItems per page (default: 20, max: 100)

Examples

Basic Usage

typescript
// List files with default pagination
const response = await client.files.list();
console.log("Files:", response.files);
console.log("Pagination:", response.pagination);

// List with custom pagination
const response = await client.files.list({
  page: 2,
  pageSize: 50
});

Get File

Retrieve metadata for a specific file by its ID.

Method Signature

typescript
get(id: string): Promise<FileMetadata>

Examples

Basic Usage

typescript
const fileId = "123e4567-e89b-12d3-a456-426614174000";

try {
  const file = await client.files.get(fileId);
  console.log("File metadata:", file);
} catch (error) {
  console.error("Failed to get file:", error);
}

Delete File

Permanently delete a file from your account.

Method Signature

typescript
delete(id: string): Promise<void>

Examples

Basic Usage

typescript
const fileId = "123e4567-e89b-12d3-a456-426614174000";

try {
  await client.files.delete(fileId);
  console.log("File deleted successfully");
} catch (error) {
  console.error("Failed to delete file:", error);
}

Error Handling

The SDK throws errors when operations fail. Each error includes detailed information about what went wrong.

typescript
try {
  const result = await client.files.upload(file);
} catch (error) {
  if (error instanceof APIError) {
    console.error("API Error:", error.message);
    console.error("Status:", error.status);
    console.error("Response:", error.body);
  } else {
    console.error("Unexpected error:", error);
  }
}

Next Steps

Continue exploring our documentation with these related topics: