Score:1

วิธีย้ายไฟล์จากภายนอก Drupal โดยที่มีไฟล์อยู่แล้วในที่ที่จำเป็น การสร้างเอนทิตีไฟล์

ธง pe

ฉันกำลังทำการโยกย้ายจากไซต์ที่ไม่ใช่ Drupal เพื่อวัตถุประสงค์ในการทดสอบ ฉันมีข้อมูลทั้งหมดในไฟล์ CSV

เนื่องจากฉันยังใหม่กับการย้ายเข้าสู่ Drupal 9 จากภายนอก Drupal ฉันจึงเรียนรู้สิ่งนี้เป็นระยะเล็กๆ ที่ค่อนข้างเรียบง่าย

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

สิ่งที่ฉันต้องการบรรลุในที่สุดใน Drupal:

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

ฉันรวบรวมวิธีที่ควรทำคือ:

  1. โอนย้ายไฟล์ไปยังเอนทิตีไฟล์
  2. การใช้กลุ่มการย้ายข้อมูล (migration_plus, migrate_tools และโมดูล migrate_source_csv) ให้ใช้ แหล่งข้อมูลเดียวกัน และ migration_lookup เพื่อย้ายเอนทิตีสื่อ
  3. ย้ายโหนดเข้าและใช้ปลั๊กอินกระบวนการ entity_generate และ value_key ของ ID เป้าหมายหรือบางอย่างเพื่อเชื่อมโยงโหนดกับเอนทิตีสื่อที่เหมาะสม

ไฟล์อยู่ในตำแหน่งที่ต้องอยู่บนเซิร์ฟเวอร์แล้ว และพาธ/URI จะถูกจัดเก็บไว้ในไฟล์ csv พร้อมกับคำอธิบายและประเภท ฟิลด์ ID เฉพาะ และ ID ของแต่ละเรกคอร์ดที่เกี่ยวข้อง

จากจุดเริ่มต้น ฉันพยายามนำเข้าไฟล์ 30 ไฟล์เป็นการนำเข้าแบบสแตนด์อโลน โมดูล migrate_files ดูไม่เหมาะสม ส่วนใหญ่เป็นเพราะฉันไม่สามารถหาวิธีปรับให้เข้ากับสถานการณ์ที่เอนทิตีสื่อกำลังจะดึงข้อมูลฟิลด์จาก csv... และไฟล์ uri's ถูกเก็บไว้ใน csv ด้วย

ดังนั้นฉันคิดว่าฉันจะลองใช้มาตรฐานเป็นส่วนใหญ่

นี่คือ yaml ของฉัน:

uuid: 1bcec3e7-0a49-4473-87a2-6dca09b91abjan-test1
รหัส: fileimptest
ป้ายกำกับ: ทดสอบการนำเข้าไฟล์
การโยกย้ายกลุ่ม: ค่าเริ่มต้น
แหล่งที่มา:
  ปลั๊กอิน: 'csv'
  เส้นทาง: '/srv/imports/filetest1.tab'
  ตัวคั่น: "\t"
  สิ่งที่แนบมา: '"'
  header_offset: null
  รหัส: [ความช่วยเหลือ]
# ไม่ได้ใช้ฟิลด์เหล่านี้ส่วนใหญ่ในการนำเข้าไฟล์
# แต่รวมเพราะอาจจำเป็นสำหรับการจัดกลุ่ม
# และ migrate_lookup ในการนำเข้าสื่อ?
  เขตข้อมูล:
    0:
      ชื่อ: ช่วยเหลือ
      ป้ายกำกับ: 'รหัสเฉพาะ'
    1:
      ชื่อ: ชื่อเรื่อง
      ป้ายกำกับ: 'คำอธิบาย'
    2:
      ชื่อ: formflag
      ป้ายกำกับ: 'FormYN'
    3:
      ชื่อ: เส้นทางใหม่
      ป้ายกำกับ: 'เส้นทาง'
    4:
      ชื่อ: docnum
      ป้ายกำกับ: 'หมายเลขเอกสาร'
    5:
      ชื่อ: doctype
      ป้ายกำกับ: 'ประเภทเอกสาร'

กระบวนการ:
  uid:
    ปลั๊กอิน: default_value
    default_value: 179
  ยูริ: เส้นทาง
ปลายทาง:
  ปลั๊กอิน: เอนทิตี: ไฟล์

ผลลัพธ์คือไฟล์ทดสอบ 30 ไฟล์ของฉันปรากฏในรายการไฟล์ภายใต้ผู้ดูแลระบบ/เนื้อหาโดยมีสถานะเป็นชั่วคราว ลิงก์ดูถูกต้อง แต่การคลิกลิงก์ส่งผลให้การเข้าถึง 403 ถูกปฏิเสธ (การอนุญาตโฟลเดอร์คือ 777 และเป็นของเว็บเซิร์ฟเวอร์)(ฉันใช้ระบบไฟล์ส่วนตัวและอัปโหลดไฟล์หลายไฟล์ผ่านวิดเจ็ตฟิลด์ปกติ: รายการนี้มีสถานะ 'ถาวร' ลิงก์มีลักษณะเหมือนกันนอกเหนือจากไดเร็กทอรีย่อย แต่เปิดตามปกติเมื่อคลิก)

คำถามคือ:

  • ฉันทำอะไรผิดจนถึงตอนนี้?
  • มีวิธีที่ดีกว่า? (ฉันค่อนข้างแน่ใจว่ามี แต่อะไรนะ?)

(รายละเอียด: uid 179 เป็นเพียงผู้ใช้ที่ฉันสร้างชื่อ "ผู้นำเข้า") ฉันควรสังเกตว่าฉันได้อ่าน นี้ และ นี้และตัวอย่างมากมายในโมดูลที่เกี่ยวข้อง พวกเขาได้ร่วมกันแจ้งสิ่งที่ฉันคิดขึ้นมาจนถึงระดับที่ฉันเข้าใจพวกเขา)

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

แก้ไข 2: ตามความคิดเห็นและคำตอบด้านล่าง สถานะ 'ชั่วคราว' สามารถตั้งค่าโดยทางโปรแกรมในระหว่างการนำเข้า และการเข้าถึงถูกปฏิเสธเป็นเรื่องปกติภายใต้เงื่อนไขเหล่านี้: เมื่อไฟล์ที่นำเข้ามีทั้ง a) ไม่ได้ใช้ทุกที่และ b) คลิกโดยผู้ใช้อื่นที่ไม่ใช่ uid บนไฟล์

Score:1
ธง cn

สถานะชั่วคราวคือฟิลด์ในเอนทิตีไฟล์ (สถานะ) คุณสามารถตั้งค่าให้เป็น 1 ระหว่างการนำเข้าเพื่อทำให้ถาวร

กระบวนการ:
  uid:
    ปลั๊กอิน: default_value
    default_value: 179
  ยูริ: เส้นทาง
  สถานะ: 
    ปลั๊กอิน: default_value
    default_value: 1

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

pe flag
ขอบคุณ.คุณทราบหรือไม่ว่าการใช้งานส่งผลต่อความสามารถในการเปิดไฟล์จากลิงก์ในรายการไฟล์หรือไม่ ฉันอาจจะดำเนินการทดสอบกลุ่มการย้ายไฟล์+สื่อต่อไป ดังนั้นฉันจะดูว่าผลกระทบเป็นอย่างไรกับ 403 ของฉัน อยากรู้อยากเห็นมากที่สุดตอนนี้ถ้าไม่มีเอนทิตีที่เกี่ยวข้องจะอธิบายได้ว่าทำไมไฟล์ทั้งหมด 403... หรือถ้าฉันอาจมีปัญหาอื่น
cn flag
ในกรณีที่เจาะจงมาก ซึ่งดูเหมือนว่าคุณอาจถูกทริกเกอร์ ใช่ ถ้าไฟล์เป็นแบบชั่วคราว ไม่มีการใช้งาน และเจ้าของไฟล์ไม่ใช่ผู้ใช้ปัจจุบัน การเข้าถึงจะถูกปฏิเสธ
pe flag
ฉันสามารถยืนยันได้ว่านี่คือสาเหตุที่ฉันถูกปฏิเสธการเข้าถึงสิ่งเหล่านี้ เข้าสู่ระบบด้วย UID 179 และเปิดไฟล์ได้ ขอบคุณสำหรับความช่วยเหลือของคุณ!

โพสต์คำตอบ

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