ข้ามไปยังเนื้อหา
Dee Wan 1.0 ยังอยู่ระหว่างพัฒนาและยังไม่เปิดตัว (pre-MVP) — ดู ขอบเขตผลิตภัณฑ์ 1.0

คลังสื่อ

คลังสื่อเก็บรูปภาพและไฟล์ของเว็บไซต์ แต่ละเว็บไซต์มีคลังของตัวเอง ไฟล์ของเว็บไซต์อื่นจะไม่ถูกแสดงหรือจับคู่

เปิด คลังสื่อ ในแถบด้านข้างเพื่อจัดการไฟล์ เมื่อเลือกไฟล์จากส่วนอื่น คลังเดียวกันจะเปิดเป็นกล่องโต้ตอบ คลังสื่อ:

  • ฟิลด์สื่อของรายการ: คลังสื่อ
  • ข้อความแบบจัดรูปแบบ: แทรกรูป → คลังสื่อ หรือ อัปโหลดใหม่ เพื่ออัปโหลดลงในข้อความโดยตรง
  • ช่องรูปภาพของส่วนหน้าเว็บใน ตัวสร้างหน้า

หากโหลดคลังไม่สำเร็จ ให้กด ลองอีกครั้ง โดยไม่ต้องปิดหน้าต่าง

เลือกไฟล์หนึ่งไฟล์หรือมากกว่า แล้วกด ใช้ N รายการที่เลือก ฟิลด์สื่อรับเฉพาะชนิดไฟล์ที่โมเดลอนุญาต และไม่เกินขนาดที่ฟิลด์กำหนด ดูแถว media ใน ประเภทฟิลด์

การอ่านคลังเป็นไปตามสิทธิ์อ่านสื่อ การเปลี่ยนแปลงต้องมีสิทธิ์สามอย่างแยกกัน:

สิทธิ์ อนุญาตให้
media:upload เพิ่มไฟล์: การอัปโหลด ไฟล์ที่บันทึกจากการสร้างด้วย AI ไฟล์ที่การนำเข้าหรือปลั๊กอินนำมา ไฟล์ที่คัดลอกจากแหล่งภายนอก และการอัปโหลดแบบส่วนตัว
media:update เปลี่ยนสิ่งที่มีอยู่: alt text และคำอธิบาย จุดโฟกัส การโหลดและลำดับความสำคัญในการดึง การแทนที่ไฟล์ โฟลเดอร์ แท็ก และการมองเห็นแบบสาธารณะหรือส่วนตัว
media:delete ลบไฟล์ ไฟล์ที่ถูกใช้อยู่ยังคงถูกปฏิเสธ

บทบาทในตัว admin และ editor มีครบทั้งสาม บทบาท author มีเฉพาะ media:upload ผู้เขียนเพิ่มไฟล์ได้แต่เปลี่ยนหรือลบไม่ได้ บทบาท viewer ไม่มีเลย บทบาทแบบกำหนดเองมีเท่าที่ระบุไว้ใน การตั้งค่า → บทบาท เมื่อตัวควบคุมใช้ไม่ได้เพราะขาดสิทธิ์ ตัวควบคุมจะถูกปิดและบอกว่าต้องมีสิทธิ์ใด

กด อัปโหลด แล้วเลือกไฟล์ ไฟล์จะเข้าไปในโฟลเดอร์ที่แสดงอยู่ กล่องโต้ตอบแสดงขีดจำกัดขนาด ไฟล์เป็นสาธารณะ เว้นแต่คุณเลือกเก็บเป็นส่วนตัว ดู ไฟล์ส่วนตัว

แต่ละเว็บไซต์เลือกว่าคลังรับอะไรได้ใน การตั้งค่า → เว็บไซต์ → ไฟล์สื่อ การปิดชนิดไฟล์ไม่ลบไฟล์ที่อยู่ในคลังแล้ว

ชนิด รูปแบบ ค่าเริ่มต้น
รูปภาพ PNG, JPEG, WebP, AVIF, GIF, SVG เปิดเสมอ
เอกสาร PDF, Word, Excel, PowerPoint และ ODF ข้อความ สเปรดชีต งานนำเสนอ, RTF, Text, CSV เปิด: PDF และรูปแบบ Office
เสียง MP3, M4A, Ogg, WAV และ FLAC, AAC ปิด
วิดีโอ MP4, WebM และ QuickTime, Ogg video ปิด
ไฟล์อื่น ไฟล์อื่นที่ปลอดภัย ปิด
  • โปรแกรม สคริปต์ และหน้าเว็บไม่ถูกรับเลย ไม่ว่าจะตั้งค่าอย่างไร
  • รูปแบบไฟล์ตรวจจากไบต์ของไฟล์ ไม่ใช่แค่ชื่อไฟล์
  • SVG เป็นรูปภาพ เลือกในฟิลด์รูปภาพ ดูตัวอย่าง และแสดงด้วย <img> ได้โดยยังคงเป็นเวกเตอร์ รองรับรูปทรง ข้อความ ไล่สี และการอ้างอิงภายใน #id ขนาดไม่เกิน 1 MiB ไม่รับสคริปต์ ตัวจัดการเหตุการณ์ สไตล์ชีต ทรัพยากรภายนอก แอนิเมชัน เอนทิตี XML หรือ XML ที่ไม่ปลอดภัย SVG เก็บใน R2 แม้ภาพราสเตอร์ใช้ Cloudflare Images โดย SVG สาธารณะต้องมี IMAGES_BUCKET และ R2_PUBLIC_DOMAIN
  • การติดตั้งที่ไม่มีที่เก็บไฟล์สาธารณะรับได้เฉพาะรูปภาพ

แต่ละชนิดมีขีดจำกัดขนาดของตัวเองในการตั้งค่าเดียวกัน ทุกชนิดเริ่มต้นที่ 32 MiB

  • รูปภาพ: ไม่เกิน 32 MiB
  • เอกสาร เสียง วิดีโอ และไฟล์อื่นที่อัปโหลดที่นี่: เพิ่มขีดจำกัดได้ถึงขอบเขตการอัปโหลดของการติดตั้ง ขอบเขตนี้คือ 100 MB เว้นแต่ผู้ดูแลระบบระบุขีดจำกัดแผน Cloudflare ที่สูงกว่าใน MEDIA_REQUEST_BODY_LIMIT_BYTES สูงสุด 5 GB
  • รูปแบบที่ต้องตรวจทั้งไฟล์ (Word, Excel, PowerPoint, ODF, Text, CSV): ไม่เกิน 32 MiB
  • การนำเข้าทั่วไป ปลั๊กอิน และการอัปโหลดผ่าน API การจัดการ: ไม่เกิน 32 MiB ต่อไฟล์ การย้ายด้วยไฟล์ .deewan จะคัดลอกไฟล์เป็นส่วน ๆ โดยใช้ข้อจำกัดชนิดและขนาดไฟล์ของระบบปลายทาง สูงสุด 5 GB หากเปิดใช้ ดู การนำเข้าและย้ายข้อมูล

การอัปโหลดไฟล์ที่คลังมีอยู่แล้วจะไม่อัปโหลดอะไร กล่องโต้ตอบแสดง มีอยู่ในคลังแล้ว และเสนอ:

  • ใช้ไฟล์ที่มีอยู่: ใช้ไฟล์ที่มีอยู่ ไฟล์นั้นยังคงคำอธิบายและแท็กของตัวเอง
  • อัปโหลดเป็นสำเนาแยก: เก็บสำเนาที่สอง

ทำแบบเดียวกันกับไฟล์ซ้ำอื่นในการอัปโหลดนี้ ใช้ตัวเลือกเดียวกันกับไฟล์ซ้ำที่เหลือในการอัปโหลดนี้

  • ค้นหาด้วยชื่อไฟล์หรือข้อความแทนภาพ ค้นหาตามชื่อไฟล์หรือข้อความแทนภาพ
  • ประเภทไฟล์: ทั้งหมด, รูป, เอกสาร, เสียง หรือ วิดีโอ
  • โฟลเดอร์ หรือ สื่อทั้งหมด ({count}) และ ไม่อยู่ในโฟลเดอร์
  • ตัวกรองแท็ก ไม่มีแท็ก แสดงรูปภาพที่ไม่มีแท็ก

โฟลเดอร์ใช้จัดระเบียบคลัง ไม่เคยย้ายหรือเปลี่ยนชื่อไฟล์ที่เก็บไว้ และไม่เปลี่ยนที่อยู่ของไฟล์

  • แต่ละไฟล์อยู่ในโฟลเดอร์เดียว หรืออยู่ในหมวด ไม่อยู่ในโฟลเดอร์
  • โฟลเดอร์ใหม่ สร้างโฟลเดอร์ในโฟลเดอร์ที่แสดงอยู่ ซ้อนได้ไม่เกิน 5 ระดับ
  • เว็บไซต์หนึ่งมีโฟลเดอร์ได้ไม่เกิน 500 โฟลเดอร์ ชื่อยาว 1 ถึง 80 ตัวอักษร และต้องไม่ซ้ำภายใต้โฟลเดอร์แม่ โดยไม่สนตัวพิมพ์เล็กใหญ่
  • ตัวเลือกโฟลเดอร์ มี เปลี่ยนชื่อ, ย้ายโฟลเดอร์ไปที่ และ ลบโฟลเดอร์
  • เลือกไฟล์แล้วใช้ ย้าย N รายการที่เลือกไปที่ เพื่อย้ายได้ครั้งละไม่เกิน 200 ไฟล์
  • ลบโฟลเดอร์ ลบโฟลเดอร์และโฟลเดอร์ย่อยหลังยืนยันครั้งเดียว ไม่มีไฟล์ถูกลบ ไฟล์จะอยู่ในหมวด ไม่อยู่ในโฟลเดอร์

แท็กเป็นป้ายกำกับแบบแบนบนรูปภาพ แยกจากโฟลเดอร์

  1. เลือกรูปภาพ
  2. ใน แท็ก · เลือก N พิมพ์ชื่อใน เพิ่มแท็ก แล้วกด เพิ่มแท็ก เอาแท็กออกจากรูปที่เลือกด้วยปุ่มลบของแท็กนั้น
  • ชื่อแท็กยาว 1 ถึง 64 ตัวอักษร และไม่ซ้ำในเว็บไซต์ โดยไม่สนตัวพิมพ์เล็กใหญ่
  • จัดการแท็ก เปลี่ยนชื่อและลบแท็ก การลบแท็กไม่เคยลบรูปภาพ แท็กที่ใช้อยู่จะถามก่อนและบอกจำนวนรูปที่มีแท็กนั้น
  • แท็กเห็นได้เฉพาะในหน้าผู้ดูแล ไม่มี API สาธารณะใดส่งแท็กออกไป

เลือกไฟล์แล้วกด แก้ไขที่เลือก แต่ละภาษาของเว็บไซต์มีแท็บของตัวเอง

  • รูปภาพต้องมี ข้อความแทนรูป ในทุกภาษาของเว็บไซต์ ยาว 1 ถึง 125 ตัวอักษร บันทึก จะถูกปฏิเสธจนกว่าทุกภาษาจะมี: ทุกภาษาต้องมีข้อความแทนรูปภาพก่อนบันทึก แท็บที่ยังไม่มีจะแสดง ไม่มีข้อความแทนรูปภาพ
  • ไฟล์อื่นมี คำอธิบาย แต่ละภาษาแบบไม่บังคับ
  • เวอร์ชันของรายการเนื้อหาเก็บข้อความแทนภาพหนึ่งค่าต่อรูป โดยคัดลอกจากคลังเมื่อบันทึกรายการ ในการบันทึกปกติจะเป็นข้อความแทนภาพในภาษาเริ่มต้นของเว็บไซต์ API สาธารณะส่งค่าที่เก็บไว้นั้นเป็น alt การเปลี่ยนในคลังจะไปถึง API สาธารณะหลังจากบันทึกและเผยแพร่รายการอีกครั้ง

การจัดเฟรมกำหนดว่าส่วนใดของรูปจะแสดง โดยไม่เปลี่ยนไฟล์

  • ในฟิลด์สื่อของรายการ ตั้ง จุดโฟกัส บนรูป: คลิกส่วนที่ต้องมองเห็นเสมอ แล้วกด ใช้จุดนี้
  • ถ้าฟิลด์มีกฎสัดส่วนภาพ กรอบตัดจะตามรูปทรงของฟิลด์
  • การจัดเฟรมเป็นของการใช้งานครั้งนั้น รูปเดียวกันในที่อื่นยังคงการจัดเฟรมของตัวเอง
  • จุดโฟกัสเริ่มต้น ใน แก้ไขที่เลือก ใช้เป็นจุดเริ่มต้นของการใช้งานใหม่ การใช้งานเดิมยังคงจุดโฟกัสและกรอบตัดของตัวเอง
  • จัดเฟรมได้เฉพาะรูปภาพ

วิธีที่เว็บไซต์แสดงรูปที่จัดเฟรมแล้วอยู่ใน รูปภาพบนเว็บไซต์ที่สร้างขึ้น

ใน แก้ไขที่เลือก ค่า ลำดับการโหลด เป็นคำแนะนำให้เบราว์เซอร์: สูง, ต่ำ หรือ อัตโนมัติ ส่วน การโหลด เลือก ทันที เพื่อโหลดทันที หรือ หน่วง เพื่อรอจนจำเป็น ควรใช้ลำดับ อัตโนมัติ หากรูปภาพไม่ต้องการลำดับเฉพาะ การตั้งค่าเหล่านี้ไม่เปลี่ยนไฟล์ที่เก็บไว้

  1. เลือกรูป กด แก้ไขที่เลือก แล้วกด ครอบตัดและหมุน
  2. หมุนด้วย หมุนซ้าย และ หมุนขวา ลากกรอบตัดหรือมุมของกรอบ บนแป้นพิมพ์ ลูกศรย้ายกรอบ Alt กับลูกศรปรับขนาด R หมุน
  3. กด บันทึกเป็นสำเนา หรือ Enter

สำเนาเป็นไฟล์ใหม่ที่มีขนาดและการใช้งานของตัวเอง ได้รับข้อความแทนภาพ โฟลเดอร์ และแท็กจากต้นฉบับ และแสดง แก้ไขจาก {name} ต้นฉบับและทุกที่ที่ใช้ต้นฉบับไม่เปลี่ยน ถ้าคลังมีผลลัพธ์แบบเดียวกันทุกประการอยู่แล้ว ระบบจะเลือกไฟล์นั้นแทน

การทำงานเพิ่มเติม → แทนที่ต้นฉบับ เขียนการแก้ไขทับไฟล์ต้นฉบับ

  • ระบบแสดงรายการที่ใช้รูปนี้ก่อน หน้าเว็บที่เผยแพร่ของรายการเหล่านั้นจะแสดงรูปที่แก้ไขแล้ว
  • ระบบนับการใช้งานในที่ที่คุณเปิดไม่ได้ด้วย
  • ถ้าไฟล์ใหม่มีรูปทรงต่างไป ระบบจะบอกจำนวนรายการที่จัดเฟรมรูปนี้ด้วยกรอบตัดหรือจุดโฟกัส เพื่อให้คุณตรวจ

ไฟล์ที่ลิงก์จากแหล่งภายนอกแทนที่หรือแก้ไขไม่ได้

สคริปต์แทนที่ไฟล์ได้ด้วย POST /api/manage/v1/media/{id}/replace โดยส่ง multipart file และคีย์ idempotency รหัสไฟล์และการอ้างอิงจากเนื้อหาคงเดิม แต่ URL อาจเปลี่ยน ให้ใช้ url จากคำตอบ เวอร์ชันที่เผยแพร่และตรึงออบเจ็กต์เดิมไว้ยังเก็บไบต์เดิม ดู API การจัดการ

รูปแบบไฟล์ภาพ ใน แก้ไขที่เลือก แปลงรูปเป็น WebP หรือ AVIF หรือคงรูปแบบเดิมไว้ การแปลงทำในเบราว์เซอร์ของคุณ การบันทึกจะแทนที่ต้นฉบับ จึงแสดงการตรวจการใช้งานแบบเดียวกันก่อน

ก่อนแทนที่หรือลบ กล่องโต้ตอบบอกว่าไฟล์ถูกใช้ที่ไหน: ไม่มีอะไรอ้างถึงรูปนี้ หรือ ยังถูกใช้โดยการอ้างอิงในเนื้อหา N รายการ: …

  • การใช้งานในเนื้อหาที่คุณอ่านไม่ได้จะถูกนับ แต่ไม่บอกชื่อ
  • เวอร์ชันเก่าที่รายการยังเก็บไว้ก็นับเป็นการใช้งาน ดู เก็บเวอร์ชันไว้กี่เวอร์ชัน

กด ลบรูป (หรือ ลบไฟล์) บนไฟล์

  • การลบต้องมี media:delete การลบไฟล์ส่วนตัวจะนำไฟล์ออกจากที่เก็บส่วนตัว
  • ไฟล์ที่ใช้อยู่ลบไม่ได้: รูปภาพนี้กำลังถูกใช้ ให้แก้เนื้อหาที่ใช้ไฟล์ก่อน เวอร์ชันที่เก็บไว้อาจทำให้ไฟล์ยังถูกใช้อยู่จนกว่าจะถูกตัดออก
  • ไฟล์ที่เริ่มถูกใช้ระหว่างการลบจะถูกเก็บไว้
  • การลบต้องยืนยันก่อนและย้อนกลับไม่ได้

โดยค่าเริ่มต้นไฟล์เป็นสาธารณะ: ทุกคนที่มีที่อยู่ของไฟล์เปิดได้ และเนื้อหาใช้ไฟล์ได้ ไฟล์ส่วนตัวเก็บแยกจากไซต์สาธารณะ ไม่มีที่อยู่สาธารณะ และเปิดได้เฉพาะผ่านลิงก์ที่สร้างให้คุณ

  • ต้องมีที่เก็บส่วนตัว ผู้ดูแลระบบผูกบัคเก็ต R2 แบบส่วนตัวเป็น PRIVATE_MEDIA_BUCKET (ดู backend/wrangler.example.jsonc) ต้องเป็นบัคเก็ตของตัวเอง ไม่มีโดเมนสาธารณะและไม่เปิดให้เข้าถึงแบบสาธารณะ เพราะบัคเก็ตสื่อเป็นสาธารณะ และไฟล์ส่วนตัวที่เก็บไว้ที่นั่นจะถูกเผยแพร่ หากไม่มี ทำให้ไฟล์ใหม่เป็นส่วนตัว จะไม่ถูกเสนอ และ ทำให้เป็นส่วนตัว จะถูกปิดพร้อมข้อความ การติดตั้งนี้ไม่มีที่เก็บไฟล์ส่วนตัว Setup ไม่สร้างบัคเก็ตนี้และไม่ตรวจว่าเป็นส่วนตัวจริง
  • อัปโหลดแบบส่วนตัว ติ๊ก ทำให้ไฟล์ใหม่เป็นส่วนตัว ก่อนเลือกไฟล์ มีผลกับการอัปโหลดที่ตามมา รวมถึงไฟล์ใหญ่ที่อัปโหลดเป็นสตรีม ไฟล์ที่ปลั๊กอินหรือแหล่งภายนอกเพิ่มเป็นสาธารณะเสมอ สำเนาเว็บไซต์หรือไฟล์ประวัติจะนำไฟล์ส่วนตัวเข้ามาเป็นไฟล์ส่วนตัว
  • ดูว่าอะไรเป็นส่วนตัว ไฟล์ส่วนตัวแสดงป้าย ส่วนตัว ในคลังและในรายละเอียดของไฟล์
  • เปิดหรือดาวน์โหลด กด เปิด หรือ ดาวน์โหลด ในรายละเอียดของไฟล์ส่วนตัว ทุกครั้งที่กดจะขอลิงก์จากเซิร์ฟเวอร์ ซึ่งเปิดไฟล์เดียวของไซต์นี้และหมดอายุใน 5 นาที ตัวอย่างในคลังและเครื่องเล่นเสียงและวิดีโอขอลิงก์แบบเดียวกัน สมาชิกคนใดที่อ่านคลังได้ก็ขอได้ ไม่มีอย่างอื่นที่ให้ไฟล์นี้ ที่อยู่สื่อสาธารณะไม่มีไฟล์นี้ และการแปลงรูปภาพเข้าถึงไม่ได้ หากโหลดตัวอย่างเสียงหรือวิดีโอส่วนตัวไม่สำเร็จ ให้กด ลองอีกครั้ง หาก เปิด หรือ ดาวน์โหลด ไม่สำเร็จ ปุ่ม ลองอีกครั้ง จะทำรายการนั้นซ้ำโดยคงการแก้ไขของคุณไว้
  • ภาพตัวอย่างส่วนตัว เมื่ออัปโหลดภาพราสเตอร์ส่วนตัว เบราว์เซอร์จะสร้างภาพย่อ WebP ขนาดไม่เกิน 320 พิกเซลและภาพตัวอย่างไม่เกิน 1280 พิกเซล แต่ละไฟล์ไม่เกิน 2 MiB และเก็บในบัคเก็ตส่วนตัวเดียวกัน การเปิดภาพตรวจสิทธิ์ผ่านไฟล์ต้นฉบับและลิงก์ชั่วคราว ไม่มี URL สาธารณะ ภาพเก่าหรือภาพที่แปลงไม่สำเร็จจะแสดงต้นฉบับ กด สร้างภาพตัวอย่างส่วนตัวใหม่ ในรายละเอียดไฟล์เพื่อลองอีกครั้ง ต้องมีสิทธิ์ media:update ส่วน SVG ใช้ไฟล์เวกเตอร์ต้นฉบับ สำเนาเว็บไซต์และการย้ายไปแอปที่สร้างขึ้นจะนำภาพตัวอย่างที่มีอยู่ไปพร้อมค่าตรวจสอบ เมื่อลบหรือแทนที่วัตถุส่วนตัวที่ไม่มีการอ้างอิง ภาพตัวอย่างของวัตถุนั้นจะถูกลบด้วย
  • ไฟล์ส่วนตัวในข้อความแบบจัดรูปแบบ โมเดลส่วนตัวใช้ภาพ แกลเลอรี และไฟล์แนบส่วนตัวในฟิลด์ข้อความแบบจัดรูปแบบได้ รวมถึงข้อความภายในบล็อกปลั๊กอิน ตัวแก้ไขเปิดไฟล์ผ่านช่องทางส่วนตัวของคลัง โมเดลสาธารณะ ส่วนของหน้า สนิปเพ็ต ภาพโซเชียล และองค์ประกอบเว็บไซต์ยังคงปฏิเสธไฟล์ส่วนตัวด้วย media_private การอ่านโมเดลส่วนตัวต้องใช้โทเค็น API และเปลี่ยนเป็นสาธารณะไม่ได้หากเวอร์ชันที่เก็บไว้ยังอ้างอิงไฟล์ส่วนตัว (model_holds_private_media) คำตอบ API เก็บรหัสไฟล์ไว้แต่ไม่เปิดเผยตำแหน่งในที่เก็บ แอปที่สร้างขึ้นจะตรวจสิทธิ์อ่านรายการเจ้าของก่อนส่งไฟล์ในข้อความ ดูข้อถัดไป
  • สำเนาเว็บไซต์เก็บไฟล์ส่วนตัวให้เป็นส่วนตัว สำเนาเว็บไซต์และไฟล์ประวัตินำไฟล์ส่วนตัวทุกไฟล์ไปพร้อมไบต์ ค่าตรวจสอบ รายละเอียด และการมองเห็น การนำเข้าเก็บแต่ละไฟล์ในที่เก็บส่วนตัวของปลายทางภายใต้ผู้ให้บริการส่วนตัว และไม่เก็บในบัคเก็ตสาธารณะเลย การเลิกทำนำไฟล์ออกจากที่นั่น โมเดลส่วนตัวมาถึงเป็นส่วนตัว หากติดตั้งนี้ไม่มีที่เก็บไฟล์ส่วนตัว การตรวจจะบล็อกด้วย private_storage_unavailable ก่อนเขียนอะไร การสร้างไฟล์ต้องมีสิทธิ์อ่านคลังสื่อ (สิทธิ์เดียวกับที่เปิดไฟล์ส่วนตัวได้) เพิ่มจาก data:export เมื่อไซต์มีไฟล์ส่วนตัวใด ๆ (export_private_media_forbidden) ไม่ต้องมี media:update สิทธิ์ถูกตรวจใหม่ทุกครั้งที่ดาวน์โหลด การส่งออกเฉพาะเนื้อหา (CSV, JSON, XLSX) ไม่พึ่งไฟล์ส่วนตัวในคลังเลย หากไม่ได้ผูกที่เก็บส่วนตัว ระบบจะปฏิเสธการส่งออกสำเนาเว็บไซต์หรือไฟล์ประวัติ โดยระบุไฟล์ที่เป็นปัญหาและไม่สร้างไฟล์ส่งออก (export_private_storage_unavailable) ไม่มีข้อมูลรับรองของที่เก็บหรือชื่อบัคเก็ตถูกส่งไปด้วย
  • แอปที่สร้างขึ้นให้บริการไฟล์ส่วนตัวของตัวเอง เมื่อคุณแยกออกไปยังรีโพซิทอรีของคุณพร้อมไฟล์ส่วนตัว ไฟล์จะถูกคัดลอกไปยังบัคเก็ตส่วนตัวของคุณ (ไม่ใช่บัคเก็ตสาธารณะ) และคอลัมน์ที่อยู่ของแถวเก็บตัวบ่งชี้ private-file: ไม่ใช่ URL แอปให้บริการไฟล์ที่ GET /api/<model>/files/<field>/<row id> เฉพาะผู้ที่อ่านแถวนั้นได้ตามสิทธิ์ของโมเดลเอง ได้แก่เซสชันบัญชีของคุณ ข้อมูลรับรองบริการ หรือโทเค็นอ่านของคุณ การเป็นสมาชิกคลังของ CMS ไม่พิสูจน์อะไรที่นั่น ทุกคำขอถูกตรวจใหม่ ไม่มีอะไรหมดอายุและไม่มีอะไรถูกออกให้ Worker อ่านไบต์จากบัคเก็ต PRIVATE_FILES ของตัวเอง เซิร์ฟเวอร์ Node อ่านจากไดเรกทอรีใน PRIVATE_FILES_DIRECTORY และหากไม่มีทั้งสองอย่างจะตอบ 503 private_files_unavailable ดู Standalone backend reference
  • ไฟล์ซ้ำ การตรวจไฟล์ซ้ำเปรียบเทียบไฟล์ทุกไฟล์ในคลัง ทั้งสาธารณะและส่วนตัว

ไฟล์ในข้อความแบบจัดรูปแบบใช้ GET /api/<model>/files/<field>/<row id>?media=<media id> เพิ่ม &variant=thumb หรือ &variant=preview เพื่อเลือกภาพตัวอย่างส่วนตัว ฟังก์ชัน privateRichText(html, endpoint, rowId) ใน src/private-files.ts ที่สร้างขึ้นจะแทนตัวบ่งชี้ภายในด้วย URL ในโดเมนแอปก่อนแสดงข้อความ ทุกคำขอไฟล์จะตรวจสิทธิ์อ่านรายการเจ้าของใหม่

เลือกไฟล์ กด แก้ไขที่เลือก และใช้ การมองเห็น ต้องมี media:update

การเปลี่ยนการมองเห็นไม่เคยเป็นแค่การสลับธง เซิร์ฟเวอร์คัดลอกไฟล์ไปยังที่เก็บอีกฝั่งด้วยคีย์ใหม่ ตรวจว่าสำเนามีความยาวและ SHA-256 ตรงกับต้นฉบับที่บันทึกไว้ แล้วจึงสลับไฟล์ไปใช้สำเนานั้น จากนั้นลบสำเนาเดิม ตัวควบคุมแสดง กำลังคัดลอกและตรวจสอบไฟล์… ระหว่างทำงาน แล้วบอกว่าเกิดอะไรขึ้น:

  • ไฟล์เป็นส่วนตัวแล้ว สำเนาสาธารณะถูกลบแล้ว (หรือกลับกันสำหรับสาธารณะ)
  • บันทึกการเปลี่ยนแปลงแล้ว สำเนาเดิมถูกเก็บไว้เพราะประวัติที่เก็บไว้ยังอ้างถึงอยู่
  • บันทึกการเปลี่ยนแปลงแล้ว แต่ยืนยันไม่ได้ว่าสำเนาเดิมถูกลบ อาจยังเข้าถึงได้ที่ที่อยู่เดิมจนกว่าจะลบออกจากที่เก็บ สำเนาที่เบราว์เซอร์หรือแคชถือไว้แล้วอยู่นอกการควบคุมของคลัง
  • ไฟล์ไม่ได้ถูกย้าย {reason} เมื่อการคัดลอกล้มเหลวหรือสำเนาไม่ตรง: ไม่มีอะไรเปลี่ยน และสำเนาที่ไม่เสร็จถูกลบแล้ว หากลบไม่ได้ ข้อความจะบอกไว้

การทำให้ไฟล์เป็นส่วนตัวจะถูกปฏิเสธขณะที่เนื้อหาหรือเวอร์ชันที่เก็บไว้ยังใช้ไฟล์นั้น (media_in_use) ให้แก้เนื้อหานั้นก่อน ไฟล์ที่แหล่งสื่อภายนอกเก็บไว้ทำให้เป็นส่วนตัวไม่ได้

ปลั๊กอินสามารถให้แหล่งสื่อได้ เมื่อมี กล่องโต้ตอบจะแสดง แหล่งที่มา ข้าง คลัง

  1. เลือกแหล่ง ค้นหา และใช้ แสดงเพิ่ม เพื่อดูผลลัพธ์เพิ่ม
  2. เพิ่มไฟล์:
    • เพิ่ม คัดลอกไฟล์เข้าคลังของคุณ ใช้กฎชนิด รูปแบบ ขีดจำกัดขนาด และการตรวจไฟล์ซ้ำเดียวกับการอัปโหลด และเก็บเครดิตของแหล่งไว้
    • ลิงก์โดยไม่คัดลอก เก็บไฟล์ไว้ที่แหล่ง คลังเก็บเพียงลิงก์ไปยังไฟล์

รายละเอียด แท็ก โฟลเดอร์ และการจัดเฟรมของไฟล์ที่ลิงก์แก้ไขได้เหมือนไฟล์อื่น ไบต์ของไฟล์แทนที่หรือแก้ไขไม่ได้ การลบจะลบเพียงรายการในคลัง ถ้าปลั๊กอินถูกปิดหรือถอนออก เนื้อหาเดิมยังใช้ที่อยู่ที่บันทึกไว้ รายละเอียดจะแสดง ตอนนี้แหล่งที่มาใช้งานไม่ได้ และลิงก์ใหม่จากแหล่งนั้นจะถูกปฏิเสธ

เครดิตของไฟล์ที่คัดลอกมาจะบันทึกพร้อมรายการ และ API สาธารณะส่งเป็น credit ให้แสดงไว้ใต้รูป

กด สร้าง ในคลัง

  1. อธิบายรูปที่ต้องการ เลือก โมเดล และ อัตราส่วนภาพ (9:16, 1:1 หรือ 16:9) ใน การตั้งค่า
  2. กด สร้าง ปุ่ม สร้างใหม่ และ สร้างรูปใหม่ ใช้ลองใหม่ ยังไม่มีการบันทึกใด ๆ
  3. กด บันทึก เพื่อเพิ่มรูปเข้าคลัง ในโฟลเดอร์ที่แสดงอยู่ การตรวจไฟล์ซ้ำยังมีผล

การสร้างต้องมี ai:generate การบันทึกต้องมี media:upload รูปที่สร้างเป็นสาธารณะเสมอ การติดตั้งต้องตั้งค่าผู้ให้บริการ AI ไว้ การสร้างนับรวมในโควตา AI รายชั่วโมงของเว็บไซต์

ใช้ไฟล์ใน เนื้อหา และบน หน้าเว็บ

เปิดรายละเอียดภาพ เลือกภาษาและโมเดลที่รองรับภาพ ขอคำแนะนำแล้วตรวจสอบและแก้ไขก่อนนำไปใช้ การนำไปใช้บันทึกข้อความทดแทนและคำบรรยายของภาษาที่เลือก การทิ้งคำแนะนำจะคงข้อความเดิม ภาพถูกส่งไปยังผู้ให้บริการ AI ที่ตั้งค่าไว้โดยไม่ทำให้ภาพส่วนตัวเป็นสาธารณะ หากข้อมูลถูกแก้ไขพร้อมกัน ระบบจะไม่เขียนทับ เลือกเปิดการตรวจสอบหลังอัปโหลดได้ รองรับ JPEG, PNG และ WebP สูงสุด 10 MiB

เปิด คลังสื่อ ในเมนูด้านข้างเพื่อจัดการไฟล์โดยไม่ต้องเลือกไฟล์ให้รายการใด ตัวเลือกไฟล์ในหน้าอื่นใช้คลังเดียวกัน

ผู้ดูแลไซต์เพิ่ม ฟิลด์ไฟล์ ได้สูงสุด 24 ฟิลด์: ข้อความ ตัวเลข ค่าจริง/เท็จ ตัวเลือก วันที่ สื่อ และความสัมพันธ์ เลือก แยกตามภาษา เพื่อเก็บค่าแต่ละภาษา มิฉะนั้นใช้ค่าร่วมกัน ฟิลด์ใหม่ไม่เปิดเผยต่อสาธารณะ เปิด สาธารณะ เฉพาะค่าที่เว็บไซต์ควรอ่าน การกำหนดฟิลด์ต้องมี site:settings ส่วนการแก้ค่าต้องมี media:update

เปิด ข้อมูลไฟล์ เลือกภาษา แล้วกรอกค่า ปุ่ม บันทึก ที่ด้านล่างของตัวแก้ไขจะบันทึกข้อมูลไฟล์พร้อมคำอธิบายและตัวเลือกของไฟล์ที่เลือก ไม่มีปุ่มบันทึกข้อมูลไฟล์แยกต่างหาก ใช้ ประวัติข้อมูล เพื่อคืนค่ารุ่นเดิม เก็บได้สูงสุด 50 รุ่น โดยข้อมูลปัจจุบันและประวัติรวมกันไม่เกิน 512 KiB ระบบลบรุ่นเก่าทั้งรุ่นก่อน และไม่ตัดทอนค่าปัจจุบัน เมื่อเปลี่ยนชนิด การตั้งค่า ภาษา หรือการเปิดเผยของฟิลด์ ค่าเก่าจะไม่แสดงต่อสาธารณะและไม่คืนค่าโดยอัตโนมัติ ต้องกรอกใหม่ตามนิยามปัจจุบัน

ความสัมพันธ์ตรวจสิทธิ์โมเดล รายการ และภาษาในไซต์เดียวกัน ค่าสาธารณะอ้างอิงได้เฉพาะไฟล์สาธารณะและรายการสาธารณะที่เผยแพร่แล้ว ข้อมูลส่วนตัวและประวัติไม่อยู่ในคำตอบคลังสื่อทั่วไปหรือเนื้อหาสาธารณะ ค่าที่เปิดเผยอยู่ใน mediaMetadata โดยใช้ ID ไฟล์เป็นคีย์ ข้อมูลนี้ตามรุ่นปัจจุบันของไฟล์ แม้หลายรายการใช้ไฟล์เดียวกัน เว็บไซต์ที่สร้างจะเก็บค่าขณะสร้าง ต้องสร้างใหม่เพื่ออัปเดต ไบต์ไฟล์ การจัดเฟรม และคำอธิบายที่ตรึงกับรุ่นเนื้อหายังคงใช้กติกาเดิม

การคัดลอกไซต์นำฟิลด์ ค่า และประวัติไปด้วย พร้อมเปลี่ยนการอ้างอิงให้ตรงกับไฟล์และรายการปลายทาง โดยไม่เขียนทับข้อมูลไฟล์ปลายทางที่มีอยู่ การเลิกทำนำเข้าจะเก็บไฟล์ที่ถูกแก้ไขหรือยังมีการใช้งานพร้อมข้อมูล และปฏิเสธการลบสิ่งที่ยังพึ่งพาอยู่ รวมถึงการอ้างอิงจากประวัติและวงจรอ้างอิง นิยามฟิลด์ที่ยังใช้จะคงอยู่ด้วย หากล้างแคชสาธารณะไม่สำเร็จ ระบบจะแจ้งหลังบันทึก

หากบันทึกข้อมูลไฟล์ไม่สำเร็จ ตัวแก้ไขจะยังเปิดอยู่และเก็บค่าที่คุณแก้ไขไว้ พร้อมเปิดส่วน ข้อมูลไฟล์ เพื่อแสดงข้อผิดพลาด แก้ค่าแล้วกด บันทึก ที่ด้านล่างอีกครั้ง หากผู้อื่นเปลี่ยนฟิลด์หรือค่า ให้กด โหลดใหม่ เพื่อทิ้งการแก้ไขข้อมูลไฟล์ของคุณและโหลดรุ่นปัจจุบัน จากนั้นแก้ค่าและลองบันทึกอีกครั้ง

เปิด สื่อ → แก้ไขที่เลือก → ต้นฉบับตามภาษา เลือก ภาษา แล้วกด แทนที่ไฟล์ นำต้นฉบับออก จะกลับไปใช้ไฟล์สำรอง ต้องมีสิทธิ์ media:update ID สื่อ ลิงก์ และคำอธิบายแต่ละภาษาคงเดิม

ลำดับไฟล์: ภาษาที่ขอ ภาษาสำรองที่ตั้งไว้ แล้วต้นฉบับหลัก เวอร์ชันที่เผยแพร่ตรึงไฟล์เดิม การแทนที่หรือนำต้นฉบับออกไม่ลบไฟล์ที่ประวัติยังใช้ ไฟล์ส่วนตัวยังคงใช้กฎสิทธิ์เดิม การคัดลอกไซต์และโอนประวัติทั้งหมดเก็บภาษาของต้นฉบับและไฟล์เก่า

API จัดการ: listMediaOriginals, replaceMediaOriginal, removeMediaOriginal การแทนที่ใช้ multipart file และ expected_object_id ใช้สตริงว่างเมื่อยังไม่มีต้นฉบับภาษานั้น การนำออกต้องระบุ expected_object_id ปัจจุบัน หากเปลี่ยนแล้วจะได้ 409 media_changed ต้นฉบับหลักยังใช้คำสั่งแทนที่เดิม


ยังไม่เปิดตัว (pre-MVP) และยังไม่มีเวอร์ชันเสถียร
คอมมิตซอร์สโค้ด: fe23db481c422b40e317b92fc98116b4c0c26a87 (มีการแก้ไขที่ยังไม่คอมมิต)
วันที่สร้างเอกสาร (UTC): 2026-10-18T09:22:34.630Z
คอมมิตสำหรับอัปเกรด: ระบุไม่ได้: มีการแก้ไขที่ยังไม่คอมมิต. บันทึกการเปลี่ยนแปลง