Skip to main content

File Management

The SDK provides comprehensive file and folder management capabilities.

Uploading Files

import { uploadFile } from "@cpod/sdk";

// Upload a file
const result = await uploadFile({
file: fileObject, // File or Blob
folder_id: "folder-123", // Optional: target folder
category_id: "cat-456", // Optional: category
});

console.log(result.file_id);

Upload Progress

import { uploadFile } from "@cpod/sdk";

const result = await uploadFile({
file: largeFile,
onProgress: (progress) => {
console.log(`${progress.percent}% uploaded`);
},
});

Downloading Files

import { downloadFiles, getFileById } from "@cpod/sdk";

// Get file metadata
const file = await getFileById("file-123");
console.log(file.name, file.size);

// Download file(s)
const blob = await downloadFiles({
file_ids: ["file-123", "file-456"],
});

Searching Files

import { searchFiles } from "@cpod/sdk";

const results = await searchFiles({
query: "quarterly report",
folder_id: "folder-123", // Optional: limit to folder
category_id: "cat-456", // Optional: limit to category
file_types: ["pdf", "docx"],
limit: 20,
page: 1,
});

results.files.forEach(file => {
console.log(file.name, file.created_at);
});

Folder Operations

import {
createFolder,
listFolders,
deleteFolder,
} from "@cpod/sdk";

// Create a folder
const folder = await createFolder({
name: "Reports",
parent_id: "parent-folder-id", // Optional
});

// List folders
const folders = await listFolders({
parent_id: null, // Root folders
});

// Delete a folder
await deleteFolder(folder.id);

File Sharing

import { shareFiles, getSharedFiles } from "@cpod/sdk";

// Share files with users
await shareFiles({
file_ids: ["file-123"],
user_ids: ["user-456"],
permission: "read", // or "write"
});

// Get files shared with me
const sharedFiles = await getSharedFiles();

File Actions

import {
moveFiles,
copyFiles,
deleteFiles,
renameFile,
} from "@cpod/sdk";

// Move files to a folder
await moveFiles({
file_ids: ["file-123"],
target_folder_id: "folder-456",
});

// Copy files
await copyFiles({
file_ids: ["file-123"],
target_folder_id: "folder-789",
});

// Delete files
await deleteFiles({
file_ids: ["file-123", "file-456"],
});

// Rename a file
await renameFile("file-123", "new-name.pdf");

Signed URLs

For direct file access:

import { getSignedUrl } from "@cpod/sdk";

const url = await getSignedUrl({
file_id: "file-123",
expires_in: 3600, // 1 hour
});

// Use the URL for direct download
window.open(url);