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);