បង្កើតកំណត់ឯកសារដើម្បីភ្ជាប់ឯកសារ រូបភាព និងឯកសារផ្សេងទៀតទៅកាន់កំណត់ត្រា
សមាសភាគកំណត់ឯកសារអនុញ្ញាតឱ្យអ្នកភ្ជាប់ឯកសារច្រើនទៅកាន់កំណត់ត្រា។ ឯកសារត្រូវបានរក្សាទុកយ៉ាងសុវត្ថិភាពនៅក្នុង AWS S3 ជាមួយនឹងការតាមដានមេតាដាតាប្រភេទពេញលេញ ការផ្ទៀងផ្ទាត់ប្រភេទឯកសារ និងការគ្រប់គ្រងការចូលប្រើយ៉ាងត្រឹមត្រូវ។
ឧទាហរណ៍មូលដ្ឋាន
បង្កើតសមាសភាគឯកសារងាយៗ៖
mutation CreateFileField {
createCustomField(input: {
name: "Attachments"
type: FILE
}) {
id
name
type
}
}
ឧទាហរណ៍កម្រិតខ្ពស់
បង្កើតសមាសភាគឯកសារដែលមានការពិពណ៌នា៖
mutation CreateDetailedFileField {
createCustomField(input: {
name: "Project Documents"
type: FILE
description: "Upload project-related documents, images, and files"
}) {
id
name
type
description
}
}
ព័ត៌មានចូល
CreateCustomFieldInput
ព័ត៌មាន | ប្រភេទ | ត្រូវការ | ពិពណ៌នា |
---|---|---|---|
name |
String! | ✅ បាទ | ឈ្មោះបង្ហាញនៃសមាសភាគឯកសារ |
type |
CustomFieldType! | ✅ បាទ | ត្រូវតែជា FILE |
description |
String | អត់ | អត្ថបទជំនួយដែលបង្ហាញទៅអ្នកប្រើ |
ចំណាំ: សមាសភាគកំណត់ត្រូវបានភ្ជាប់ដោយស្វ័យប្រវត្តិជាមួយគម្រោងដោយផ្អែកលើបរិបទគម្រោងបច្ចុប្បន្នរបស់អ្នកប្រើ។ មិនត្រូវការព័ត៌មាន projectId
ទេ។
ដំណើរការបញ្ចូលឯកសារ
ជំហានទី 1: បញ្ចូលឯកសារ
ដំបូង បញ្ចូលឯកសារដើម្បីទទួលបាន UID ឯកសារ៖
mutation UploadFile {
uploadFile(input: {
file: $file # File upload variable
companyId: "company_123"
projectId: "proj_123"
}) {
id
uid
name
size
type
extension
status
}
}
ជំហានទី 2: ភ្ជាប់ឯកសារទៅកាន់កំណត់ត្រា
បន្ទាប់មកភ្ជាប់ឯកសារដែលបានបញ្ចូលទៅកាន់កំណត់ត្រា៖
mutation AttachFileToRecord {
createTodoCustomFieldFile(input: {
todoId: "todo_123"
customFieldId: "file_field_456"
fileUid: "file_uid_from_upload"
}) {
id
file {
uid
name
size
type
}
}
}
ការគ្រប់គ្រងការភ្ជាប់ឯកសារ
ការបន្ថែមឯកសារតែមួយ
mutation AddFileToField {
createTodoCustomFieldFile(input: {
todoId: "todo_123"
customFieldId: "field_456"
fileUid: "file_uid_789"
}) {
id
position
file {
uid
name
size
type
extension
}
}
}
ការលុបឯកសារ
mutation RemoveFileFromField {
deleteTodoCustomFieldFile(input: {
todoId: "todo_123"
customFieldId: "field_456"
fileUid: "file_uid_789"
})
}
ប្រតិបត្តិការឯកសារប្រកបដោយមាស
ធ្វើអាប់ដេតឯកសារច្រើនក្នុងមួយពេលដោយប្រើ customFieldOptionIds:
mutation SetMultipleFiles {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
customFieldOptionIds: ["file_uid_1", "file_uid_2", "file_uid_3"]
})
}
ព័ត៌មានចូលសម្រាប់បញ្ចូលឯកសារ
UploadFileInput
ព័ត៌មាន | ប្រភេទ | ត្រូវការ | ពិពណ៌នា |
---|---|---|---|
file |
Upload! | ✅ បាទ | ឯកសារដើម្បីបញ្ចូល |
companyId |
String! | ✅ បាទ | ID ក្រុមហ៊ុនសម្រាប់ការផ្ទុកឯកសារ |
projectId |
String | អត់ | ID គម្រោងសម្រាប់ឯកសារដែលមានលក្ខណៈពិសេស |
ព័ត៌មានចូលសម្រាប់ការគ្រប់គ្រងឯកសារ
ព័ត៌មាន | ប្រភេទ | ត្រូវការ | ពិពណ៌នា |
---|---|---|---|
todoId |
String! | ✅ បាទ | ID នៃកំណត់ត្រា |
customFieldId |
String! | ✅ បាទ | ID នៃសមាសភាគឯកសារ |
fileUid |
String! | ✅ បាទ | អត្តសញ្ញាណឯកតាដែលមានភាពឯកទេសនៃឯកសារដែលបានបញ្ចូល |
ការផ្ទុកឯកសារ និងកំណត់
កំណត់ទំហំឯកសារ
ប្រភេទកំណត់ | ទំហំ |
---|---|
Maximum file size | 256MB per file |
Batch upload limit | 10 files max, 1GB total |
GraphQL upload limit | 256MB |
ប្រភេទឯកសារដែលគាំទ្រ
រូបភាព
jpg
,jpeg
,png
,gif
,bmp
,webp
,svg
,ico
,tiff
,tif
វីដេអូ
mp4
,avi
,mov
,wmv
,flv
,webm
,mkv
,3gp
សូរ
mp3
,wav
,flac
,aac
,ogg
,wma
ឯកសារ
pdf
,doc
,docx
,xls
,xlsx
,ppt
,pptx
,txt
,rtf
សារពើភ័ណ្ឌ
zip
,rar
,7z
,tar
,gz
កូដ/អត្ថបទ
json
,xml
,csv
,md
,yaml
,yml
ស្ថាបត្យកម្មការផ្ទុក
- ការផ្ទុក: AWS S3 ជាមួយរចនាសម្ព័ន្ធថតដែលបានរៀបចំ
- ទម្រង់ផ្លូវ:
companies/{companySlug}/projects/{projectSlug}/uploads/{year}/{month}/{username}/{fileUid}_{filename}
- សុវត្ថិភាព: URLs ដែលបានចុះហត្ថលេខាសម្រាប់ការចូលប្រើយ៉ាងសុវត្ថិភាព
- ការបម្រុងទុក: ការបម្រុងទុក S3 ដោយស្វ័យប្រវត្តិ
វាលឆ្លើយតប
File Response
វាល | ប្រភេទ | ពិពណ៌នា |
---|---|---|
id |
ID! | ID ទិន្នន័យ |
uid |
String! | អត្តសញ្ញាណឯកសារដែលមានភាពឯកទេស |
name |
String! | ឈ្មោះឯកសារដើម |
size |
Float! | ទំហំឯកសារក្នុងបាយត្រា |
type |
String! | ប្រភេទ MIME |
extension |
String! | ប្រភេទឯកសារ |
status |
FileStatus | កំពុងរង់ចាំ ឬ បានបញ្ជាក់ (អាចទទេ) |
shared |
Boolean! | ថាតើឯកសារនេះត្រូវបានចែករំលែកឬអត់ |
createdAt |
DateTime! | ម៉ោងបញ្ចូល |
TodoCustomFieldFile Response
វាល | ប្រភេទ | ពិពណ៌នា |
---|---|---|
id |
ID! | ID កំណត់ត្រាសម្ព័ន្ធ |
uid |
String! | អត្តសញ្ញាណឯកទេស |
position |
Float! | លំដាប់បង្ហាញ |
file |
File! | វត្ថុឯកសារដែលភ្ជាប់ |
todoCustomField |
TodoCustomField! | សមាសភាគកំណត់ឪពុក |
createdAt |
DateTime! | ពេលណាដែលឯកសារត្រូវបានភ្ជាប់ |
ការបង្កើតកំណត់ត្រាជាមួយឯកសារ
នៅពេលបង្កើតកំណត់ត្រា អ្នកអាចភ្ជាប់ឯកសារដោយប្រើ UID របស់ពួកវា៖
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
}
}
}
}
}
ការផ្ទៀងផ្ទាត់ឯកសារ និងសុវត្ថិភាព
ការផ្ទៀងផ្ទាត់ការបញ្ចូល
- ការត្រួតពិនិត្យប្រភេទ MIME: ផ្ទៀងផ្ទាត់ប្រឆាំងនឹងប្រភេទដែលអនុញ្ញាត
- ការផ្ទៀងផ្ទាត់ប្រភេទឯកសារ: ការបង្វិលសម្រាប់
application/octet-stream
- កំណត់ទំហំ: ត្រូវបានអនុវត្តនៅពេលបញ្ចូល
- ការសម្អាតឈ្មោះឯកសារ: លុបអក្សរពិសេស
ការគ្រប់គ្រងការចូល
- អនុសាសន៍បញ្ចូល: ត្រូវការការជាសមាជិកគម្រោង/ក្រុមហ៊ុន
- ការភ្ជាប់ឯកសារ: តួនាទី ADMIN, OWNER, MEMBER, CLIENT
- ការចូលប្រើឯកសារ: ទទួលបានពីសិទ្ធិគម្រោង/ក្រុមហ៊ុន
- URLs សុវត្ថិភាព: URLs ដែលបានចុះហត្ថលេខាដែលមានកំណត់ពេលសម្រាប់ការចូលប្រើឯកសារ
សិទ្ធិដែលត្រូវការ
សកម្មភាព | សិទ្ធិដែលត្រូវការ |
---|---|
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 |
ការឆ្លើយតបកំហុស
ឯកសារធំជាងគេ
{
"errors": [{
"message": "File \"filename.pdf\": Size exceeds maximum limit of 256MB",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
ឯកសារមិនឃើញ
{
"errors": [{
"message": "File not found",
"extensions": {
"code": "FILE_NOT_FOUND"
}
}]
}
វាលមិនឃើញ
{
"errors": [{
"message": "Custom field not found",
"extensions": {
"code": "CUSTOM_FIELD_NOT_FOUND"
}
}]
}
អនុសាសន៍ល្អបំផុត
ការគ្រប់គ្រងឯកសារ
- បញ្ចូលឯកសារមុនពេលភ្ជាប់ទៅកាន់កំណត់ត្រា
- ប្រើឈ្មោះឯកសារដែលពិពណ៌នាដោយច្បាស់
- រៀបចំឯកសារតាមគម្រោង/គោលបំណង
- សម្អាតឯកសារដែលមិនបានប្រើប្រាស់ជាប្រចាំ
សមត្ថភាព
- បញ្ចូលឯកសារនៅក្នុងក្រុមពេលដែលអាចធ្វើទៅបាន
- ប្រើទ្រង់ទ្រាយឯកសារដែលសមស្របសម្រាប់ប្រភេទមាតិកា
- បង្ហាប់ឯកសារធំមុនពេលបញ្ចូល
- ពិចារណាអំពីការទាមទារបង្ហាញឯកសារ
សុវត្ថិភាព
- ផ្ទៀងផ្ទាត់មាតិកាឯកសារ មិនត្រឹមតែប្រភេទទេ
- ប្រើការត្រួតពិនិត្យវីរុសសម្រាប់ឯកសារដែលបានបញ្ចូល
- អនុវត្តការគ្រប់គ្រងការចូលប្រើយ៉ាងត្រឹមត្រូវ
- តាមដានលំនាំការបញ្ចូលឯកសារ
ករណីប្រើប្រាស់ទូទៅ
-
ការគ្រប់គ្រងឯកសារ
- ការបញ្ជាក់គម្រោង
- កិច្ចសន្យា និងកិច្ចព្រមព្រៀង
- កំណត់ត្រាសន្និសីទ និងការបង្ហាញ
- ឯកសារបច្ចេកទេស
-
ការគ្រប់គ្រងទ្រព្យសម្បត្តិ
- ឯកសាររចនា និងការបង្ហាញ
- ទ្រព្យសម្បត្តិម៉ាក និងឡូហ្គូ
- សម្ភារៈទីផ្សារ
- រូបភាពផលិតផល
-
ការអនុវត្តន៍ និងកំណត់ត្រា
- ឯកសារប្រកាសច្បាប់
- ផ្លូវពិនិត្យ
- វិញ្ញាបនប័ត្រ និងអាជ្ញាប័ណ្ណ
- កំណត់ត្រាហិរញ្ញវត្ថុ
-
ការសហការណ៍
- ធនធានដែលបានចែករំលែក
- ឯកសារដែលមានការគ្រប់គ្រងកំណែ
- មតិយោបល់ និងការអនុវត្ត
- សម្ភារៈយោង
លក្ខណៈពិសេសនៃការបញ្ចូល
ជាមួយការបង្កើតស្វ័យប្រវត្តិ
- បង្កើតសកម្មភាពនៅពេលដែលឯកសារត្រូវបានបន្ថែម/លុប
- ដំណើរការឯកសារតាមប្រភេទឬមេតាដាតា
- ផ្ញើការជូនដំណឹងសម្រាប់ការផ្លាស់ប្តូរឯកសារ
- បម្រុងឯកសារតាមលក្ខខណ្ឌ
ជាមួយរូបភាពគម្រប
- ប្រើសមាសភាគឯកសារជាដើមរូបភាពគម្រប
- ការបង្ហាញរូបភាព និងរូបភាពតូចដោយស្វ័យប្រវត្តិ
- ការអាប់ដេតគម្របដោយស្វ័យប្រវត្តិពេលដែលឯកសារប្រែប្រួល
ជាមួយការស្វែងរក
- យោងឯកសារពីកំណត់ត្រាផ្សេងទៀត
- បូកចំនួន និងទំហំឯកសារ
- ស្វែងរកកំណត់ត្រាដោយមេតាដាតារបស់ឯកសារ
- យោងឯកសារភ្ជាប់
ការកំណត់
- ទំហំអតិបរមា 256MB សម្រាប់ឯកសារមួយ
- អាស្រ័យលើការមានស្រាប់នៃ S3
- មិនមានការគ្រប់គ្រងកំណែឯកសារដែលមានស្រាប់
- មិនមានការបម្លែងឯកសារដោយស្វ័យប្រវត្តិ
- សមត្ថភាពបង្ហាញឯកសារដែលមានកំណត់
- មិនមានការកែប្រែសហការយ៉ាងពេលវេលាពិត
ធនធានដែលពាក់ព័ន្ធ
- API បញ្ចូលឯកសារ - ចំណុចបញ្ចូលឯកសារ
- ទិដ្ឋភាពទូទៅសមាសភាគកំណត់ - គំនិតទូទៅ
- API ស្វ័យប្រវត្តិ - ការបង្កើតស្វ័យប្រវត្តិដែលមានឯកសារ
- ឯកសាររបស់ AWS S3 - ការផ្ទុកក្រោយ