Files
Files in Vaiz are always attached to either tasks or comments. You upload files and then attach them to content.
File Types
Choose the right type for proper display. See UploadFileType for all available file types.
File Type Matters
The same file uploaded as Image shows a preview, while File shows only a download button. Choose based on how you want users to see it.
Files in Tasks
Upload and attach files when creating or updating tasks:
from vaiz.models import CreateTaskRequest, TaskFile
from vaiz.models.enums import UploadFileType
# 1. Upload file
upload = client.upload_file("design.pdf", UploadFileType.Pdf)
# 2. Create TaskFile object
task_file = TaskFile(
url=upload.file.url,
name=upload.file.name,
ext=upload.file.ext,
id=upload.file.id,
type=upload.file.type,
dimension=upload.file.dimension
)
# 3. Create task with file
task = CreateTaskRequest(
name="Review Design Document",
board="board_id",
group="group_id",
files=[task_file]
)
response = client.create_task(task)
Multiple Files in Task
from vaiz.models.enums import UploadFileType
# Upload multiple files
files = [
("requirements.pdf", UploadFileType.Pdf),
("mockup.png", UploadFileType.Image),
("demo.mp4", UploadFileType.Video)
]
task_files = []
for path, file_type in files:
upload = client.upload_file(path, file_type)
task_files.append(TaskFile(
url=upload.file.url,
name=upload.file.name,
ext=upload.file.ext,
id=upload.file.id,
type=upload.file.type,
dimension=upload.file.dimension
))
# Create task with all files
task = CreateTaskRequest(
name="Project Kickoff",
board="board_id",
group="group_id",
files=task_files
)
response = client.create_task(task)
Files in Comments
Files are commonly used in comments for discussions:
from vaiz.models.enums import UploadFileType
# Upload files
screenshot = client.upload_file("bug.png", UploadFileType.Image)
log = client.upload_file("error.log", UploadFileType.File)
# Attach to comment
response = client.post_comment(
document_id="document_id",
content="<p>Found a bug, see screenshot and logs</p>",
file_ids=[screenshot.file.id, log.file.id]
)
Upload from URL
Skip local files and upload directly from URLs:
# Upload external file
upload = client.upload_file_from_url(
file_url="https://example.com/report.pdf",
file_type=UploadFileType.Pdf,
filename="monthly_report.pdf"
)
# Use in comment
response = client.post_comment(
document_id="document_id",
content="<p>External report attached</p>",
file_ids=[upload.file.id]
)