Skip to main content

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

See Also