เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
การอัปโหลดไฟล์สำหรับฟิลด์แนบไฟล์และคอลเลกชันไฟล์สามารถจัดการได้ผ่าน HTTP API ครับ โดยวิธีการเรียกใช้งานจะแตกต่างกันไปขึ้นอยู่กับสตอเรจเอนจินที่ใช้สำหรับไฟล์แนบหรือคอลเลกชันไฟล์นั้นๆ ครับ
สำหรับสตอเรจเอนจินโอเพนซอร์สในตัว เช่น S3, OSS และ COS การเรียกใช้ HTTP API จะเหมือนกับการใช้งานฟังก์ชันอัปโหลดผ่านส่วนติดต่อผู้ใช้ (UI) โดยไฟล์จะถูกอัปโหลดผ่านเซิร์ฟเวอร์ครับ การเรียกใช้ API จำเป็นต้องส่งโทเค็น JWT ที่ได้จากการล็อกอินของผู้ใช้ผ่านเฮดเดอร์ Authorization ในคำขอ มิฉะนั้นการเข้าถึงจะถูกปฏิเสธครับ
เริ่มต้นด้วยการเรียกใช้การดำเนินการ create บนทรัพยากร attachments (ตารางไฟล์แนบ) โดยส่งคำขอ POST และอัปโหลดเนื้อหาไบนารีผ่านฟิลด์ file ครับ หลังจากเรียกใช้แล้ว ไฟล์จะถูกอัปโหลดไปยังสตอเรจเอนจินเริ่มต้น
หากต้องการอัปโหลดไฟล์ไปยังสตอเรจเอนจินอื่น คุณสามารถใช้พารามิเตอร์ attachmentField เพื่อระบุสตอเรจเอนจินที่กำหนดค่าไว้สำหรับฟิลด์ของคอลเลกชันได้ครับ หากไม่ได้กำหนดค่าไว้ ไฟล์จะถูกอัปโหลดไปยังสตอเรจเอนจินเริ่มต้นครับ
การอัปโหลดไปยังคอลเลกชันไฟล์จะสร้างบันทึกไฟล์โดยอัตโนมัติครับ โดยเริ่มจากการเรียกใช้การดำเนินการ create บนทรัพยากรคอลเลกชันไฟล์ ด้วยการส่งคำขอ POST และอัปโหลดเนื้อหาไบนารีผ่านฟิลด์ file ครับ
เมื่ออัปโหลดไปยังคอลเลกชันไฟล์ ไม่จำเป็นต้องระบุสตอเรจเอนจินครับ ไฟล์จะถูกอัปโหลดไปยังสตอเรจเอนจินที่กำหนดค่าไว้สำหรับคอลเลกชันนั้นโดยอัตโนมัติครับ
สำหรับสตอเรจเอนจินที่เข้ากันได้กับ S3 ซึ่งให้บริการผ่านปลั๊กอิน S3-Pro เชิงพาณิชย์ การอัปโหลดด้วย HTTP API จะต้องดำเนินการหลายขั้นตอนครับ
รับข้อมูลสตอเรจเอนจิน
เริ่มต้นด้วยการเรียกใช้การดำเนินการ getBasicInfo บนคอลเลกชัน storages (ตารางสตอเรจ) พร้อมระบุชื่อสตอเรจ (storage name) เพื่อขอข้อมูลการกำหนดค่าของสตอเรจเอนจินครับ
ตัวอย่างข้อมูลการกำหนดค่าสตอเรจเอนจินที่ส่งกลับมา:
รับข้อมูล URL ที่ลงนามล่วงหน้า (Presigned URL) จากผู้ให้บริการ
เริ่มต้นด้วยการเรียกใช้การดำเนินการ createPresignedUrl บนทรัพยากร fileStorageS3 โดยส่งคำขอ POST พร้อมข้อมูลที่เกี่ยวข้องกับไฟล์ในส่วน Body เพื่อรับข้อมูลการอัปโหลดที่ลงนามล่วงหน้าครับ
หมายเหตุ:
name: ชื่อไฟล์size: ขนาดไฟล์ (หน่วยเป็นไบต์)type: ชนิด MIME ของไฟล์ สามารถดูเพิ่มเติมได้ที่: ชนิด MIME ทั่วไปstorageId: ID ของสตอเรจเอนจิน (คือฟิลด์idที่ส่งกลับมาในขั้นตอนที่ 1)storageType: ชนิดของสตอเรจเอนจิน (คือฟิลด์typeที่ส่งกลับมาในขั้นตอนที่ 1)ตัวอย่างข้อมูลคำขอ:
โครงสร้างข้อมูลของข้อมูลที่ลงนามล่วงหน้าที่ได้รับจะเป็นดังนี้ครับ
อัปโหลดไฟล์
ใช้ putUrl ที่ได้รับกลับมาเพื่อส่งคำขอ PUT โดยอัปโหลดไฟล์เป็นส่วน Body ครับ
หมายเหตุ:
putUrl: ฟิลด์putUrlที่ส่งกลับมาในขั้นตอนก่อนหน้าfile_path: พาธ (path) โลคัลของไฟล์ที่จะอัปโหลดตัวอย่างข้อมูลคำขอ:
สร้างบันทึกไฟล์
หลังจากอัปโหลดสำเร็จ ให้สร้างบันทึกไฟล์โดยเริ่มจากการเรียกใช้การดำเนินการ create บนทรัพยากร attachments (ตารางไฟล์แนบ) ด้วยคำขอ POST ครับ
คำอธิบายข้อมูลที่เกี่ยวข้องใน
data-raw:
title: ฟิลด์fileInfo.titleที่ส่งกลับมาในขั้นตอนก่อนหน้าfilename: ฟิลด์fileInfo.keyที่ส่งกลับมาในขั้นตอนก่อนหน้าextname: ฟิลด์fileInfo.extnameที่ส่งกลับมาในขั้นตอนก่อนหน้าpath: ค่าว่างโดยปริยายsize: ฟิลด์fileInfo.sizeที่ส่งกลับมาในขั้นตอนก่อนหน้าurl: ค่าว่างโดยปริยายmimetype: ฟิลด์fileInfo.mimetypeที่ส่งกลับมาในขั้นตอนก่อนหน้าmeta: ฟิลด์fileInfo.metaที่ส่งกลับมาในขั้นตอนก่อนหน้าstorageId: ฟิลด์idที่ส่งกลับมาในขั้นตอนที่ 1ตัวอย่างข้อมูลคำขอ:
สามขั้นตอนแรกจะเหมือนกับการอัปโหลดไปยังฟิลด์แนบไฟล์ครับ อย่างไรก็ตาม ในขั้นตอนที่สี่ คุณจะต้องสร้างบันทึกไฟล์โดยเริ่มจากการเรียกใช้การดำเนินการ create บนทรัพยากรคอลเลกชันไฟล์ ด้วยคำขอ POST และอัปโหลดข้อมูลไฟล์ในส่วน Body ครับ
คำอธิบายข้อมูลที่เกี่ยวข้องใน
data-raw:
title: ฟิลด์fileInfo.titleที่ส่งกลับมาในขั้นตอนก่อนหน้าfilename: ฟิลด์fileInfo.keyที่ส่งกลับมาในขั้นตอนก่อนหน้าextname: ฟิลด์fileInfo.extnameที่ส่งกลับมาในขั้นตอนก่อนหน้าpath: ค่าว่างโดยปริยายsize: ฟิลด์fileInfo.sizeที่ส่งกลับมาในขั้นตอนก่อนหน้าurl: ค่าว่างโดยปริยายmimetype: ฟิลด์fileInfo.mimetypeที่ส่งกลับมาในขั้นตอนก่อนหน้าmeta: ฟิลด์fileInfo.metaที่ส่งกลับมาในขั้นตอนก่อนหน้าstorageId: ฟิลด์idที่ส่งกลับมาในขั้นตอนที่ 1ตัวอย่างข้อมูลคำขอ: