Skapa fält för filer för att bifoga dokument, bilder och andra filer till poster
Filanpassade fält gör att du kan bifoga flera filer till poster. Filer lagras säkert i AWS S3 med omfattande metadataövervakning, validering av filtyp och korrekta åtkomstkontroller.
Grundläggande exempel
Skapa ett enkelt filfält:
mutation CreateFileField {
createCustomField(input: {
name: "Attachments"
type: FILE
}) {
id
name
type
}
}
Avancerat exempel
Skapa ett filfält med beskrivning:
mutation CreateDetailedFileField {
createCustomField(input: {
name: "Project Documents"
type: FILE
description: "Upload project-related documents, images, and files"
}) {
id
name
type
description
}
}
Indata parametrar
CreateCustomFieldInput
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
name |
String! | ✅ Ja | Visningsnamn för filfältet |
type |
CustomFieldType! | ✅ Ja | Måste vara FILE |
description |
String | Nej | Hjälptext som visas för användare |
Notera: Anpassade fält är automatiskt kopplade till projektet baserat på användarens aktuella projektkontext. Ingen projectId
parameter krävs.
Filuppladdningsprocess
Steg 1: Ladda upp fil
Först, ladda upp filen för att få en fil UID:
mutation UploadFile {
uploadFile(input: {
file: $file # File upload variable
companyId: "company_123"
projectId: "proj_123"
}) {
id
uid
name
size
type
extension
status
}
}
Steg 2: Bifoga fil till post
Bifoga sedan den uppladdade filen till en post:
mutation AttachFileToRecord {
createTodoCustomFieldFile(input: {
todoId: "todo_123"
customFieldId: "file_field_456"
fileUid: "file_uid_from_upload"
}) {
id
file {
uid
name
size
type
}
}
}
Hantera filbilagor
Lägga till enskilda filer
mutation AddFileToField {
createTodoCustomFieldFile(input: {
todoId: "todo_123"
customFieldId: "field_456"
fileUid: "file_uid_789"
}) {
id
position
file {
uid
name
size
type
extension
}
}
}
Ta bort filer
mutation RemoveFileFromField {
deleteTodoCustomFieldFile(input: {
todoId: "todo_123"
customFieldId: "field_456"
fileUid: "file_uid_789"
})
}
Massfiloperationer
Uppdatera flera filer på en gång med hjälp av customFieldOptionIds:
mutation SetMultipleFiles {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
customFieldOptionIds: ["file_uid_1", "file_uid_2", "file_uid_3"]
})
}
Filuppladdningsindata parametrar
UploadFileInput
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
file |
Upload! | ✅ Ja | Fil att ladda upp |
companyId |
String! | ✅ Ja | Företags-ID för fillagring |
projectId |
String | Nej | Projekt-ID för projektspecifika filer |
Filhanteringsindata parametrar
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
todoId |
String! | ✅ Ja | ID för posten |
customFieldId |
String! | ✅ Ja | ID för det filanpassade fältet |
fileUid |
String! | ✅ Ja | Unik identifierare för den uppladdade filen |
Fil lagring och begränsningar
Filstorleksbegränsningar
Begränsningstyp | Storlek |
---|---|
Maximum file size | 256MB per file |
Batch upload limit | 10 files max, 1GB total |
GraphQL upload limit | 256MB |
Stödda filtyper
Bilder
jpg
,jpeg
,png
,gif
,bmp
,webp
,svg
,ico
,tiff
,tif
Videor
mp4
,avi
,mov
,wmv
,flv
,webm
,mkv
,3gp
Ljud
mp3
,wav
,flac
,aac
,ogg
,wma
Dokument
pdf
,doc
,docx
,xls
,xlsx
,ppt
,pptx
,txt
,rtf
Arkiv
zip
,rar
,7z
,tar
,gz
Kod/Text
json
,xml
,csv
,md
,yaml
,yml
Lagringsarkitektur
- Lagring: AWS S3 med organiserad mappstruktur
- Sökvägsformat:
companies/{companySlug}/projects/{projectSlug}/uploads/{year}/{month}/{username}/{fileUid}_{filename}
- Säkerhet: Signerade URL:er för säker åtkomst
- Backup: Automatisk S3 redundans
Svarsfält
Fil Svar
Fält | Typ | Beskrivning |
---|---|---|
id |
ID! | Databas-ID |
uid |
String! | Unik filidentifierare |
name |
String! | Original filnamn |
size |
Float! | Filstorlek i byte |
type |
String! | MIME-typ |
extension |
String! | Filändelse |
status |
FileStatus | PENDING eller CONFIRMED (nullable) |
shared |
Boolean! | Om filen är delad |
createdAt |
DateTime! | Uppladdningstidstämpel |
TodoCustomFieldFile Svar
Fält | Typ | Beskrivning |
---|---|---|
id |
ID! | Junction post-ID |
uid |
String! | Unik identifierare |
position |
Float! | Visningsordning |
file |
File! | Associerad filobjekt |
todoCustomField |
TodoCustomField! | Föräldranpassat fält |
createdAt |
DateTime! | När filen bifogades |
Skapa poster med filer
När du skapar poster kan du bifoga filer med deras UIDs:
mutation CreateRecordWithFiles {
createTodo(input: {
title: "Project deliverables"
todoListId: "list_123"
customFields: [{
customFieldId: "file_field_id"
customFieldOptionIds: ["file_uid_1", "file_uid_2"]
}]
}) {
id
title
customFields {
id
customField {
name
type
}
todoCustomFieldFiles {
id
position
file {
uid
name
size
type
}
}
}
}
}
Filvalidering och säkerhet
Uppladdningsvalidering
- MIME-typkontroll: Validerar mot tillåtna typer
- Filändelsevalidering: Reserv för
application/octet-stream
- Storleksbegränsningar: Tillämpas vid uppladdning
- Filnamnssanering: Tar bort specialtecken
Åtkomstkontroll
- Uppladdningsbehörigheter: Projekt-/företagsmedlemskap krävs
- Filassociation: ADMIN, ÄGARE, MEDLEM, KLIENT roller
- Filåtkomst: Ärver från projekt-/företagsbehörigheter
- Säkra URL:er: Tidsbegränsade signerade URL:er för filåtkomst
Obligatoriska behörigheter
Åtgärd | Obligatorisk behörighet |
---|---|
Create file field | OWNER or ADMIN project-level role |
Update file field | OWNER or ADMIN project-level role |
Upload files | Project or company membership |
Attach files | ADMIN, OWNER, MEMBER, or CLIENT role |
View files | Standard record view permissions |
Delete files | Same as attach permissions |
Felrespons
Fil för stor
{
"errors": [{
"message": "File \"filename.pdf\": Size exceeds maximum limit of 256MB",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
Fil hittades inte
{
"errors": [{
"message": "File not found",
"extensions": {
"code": "FILE_NOT_FOUND"
}
}]
}
Fält hittades inte
{
"errors": [{
"message": "Custom field not found",
"extensions": {
"code": "CUSTOM_FIELD_NOT_FOUND"
}
}]
}
Bästa praxis
Filhantering
- Ladda upp filer innan de bifogas till poster
- Använd beskrivande filnamn
- Organisera filer efter projekt/ändamål
- Rensa bort oanvända filer regelbundet
Prestanda
- Ladda upp filer i batchar när det är möjligt
- Använd lämpliga filformat för innehållstyp
- Komprimera stora filer innan uppladdning
- Tänk på krav för filförhandsvisning
Säkerhet
- Validera filinnehåll, inte bara ändelser
- Använd viruskontroll för uppladdade filer
- Implementera korrekta åtkomstkontroller
- Övervaka filuppladdningsmönster
Vanliga användningsfall
-
Dokumenthantering
- Projektspecifikationer
- Kontrakt och avtal
- Mötesanteckningar och presentationer
- Teknisk dokumentation
-
Tillgångshantering
- Designfiler och mockups
- Varumärkesresurser och logotyper
- Marknadsföringsmaterial
- Produktbilder
-
Regelefterlevnad och poster
- Juridiska dokument
- Revisionsspår
- Certifikat och licenser
- Finansiella poster
-
Samarbete
- Delade resurser
- Versionskontrollerade dokument
- Feedback och anteckningar
- Referensmaterial
Integrationsfunktioner
Med automatiseringar
- Utlösa åtgärder när filer läggs till/ tas bort
- Bearbeta filer baserat på typ eller metadata
- Skicka meddelanden för filändringar
- Arkivera filer baserat på villkor
Med omslagsbilder
- Använd filfält som källor för omslagsbilder
- Automatisk bildbehandling och miniatyrer
- Dynamiska omslagsuppdateringar när filer ändras
Med uppslag
- Referera till filer från andra poster
- Sammanställ filantal och storlekar
- Hitta poster efter filmetadata
- Korsreferens filbilagor
Begränsningar
- Maximalt 256 MB per fil
- Beroende av S3 tillgänglighet
- Ingen inbyggd filversionshantering
- Ingen automatisk filkonvertering
- Begränsade möjligheter för filförhandsvisning
- Ingen realtids samarbetsredigering
Relaterade resurser
- Ladda upp filer API - Filuppladdningsändpunkter
- Översikt över anpassade fält - Allmänna koncept
- Automatiserings-API - Filbaserade automatiseringar
- AWS S3 Dokumentation - Lagringsbackend