Điểm:1

Cách di chuyển các tệp từ bên ngoài Drupal, với các tệp đã có ở nơi chúng cần, tạo các thực thể tệp

lá cờ pe

Tôi đang thực hiện di chuyển từ một trang web không phải của Drupal--cho đến nay, vì mục đích thử nghiệm. Tôi có tất cả dữ liệu trong tệp CSV.

Vì tôi mới chuyển sang Drupal 9 từ bên ngoài Drupal, nên tôi đang học điều này theo từng giai đoạn nhỏ, hơi đơn giản.

Dữ liệu nguồn bao gồm một loạt các bản ghi, nhiều bản ghi có tệp đính kèm. Một số tệp được đính kèm vào nhiều bản ghi. Một số bản ghi có nhiều tệp đính kèm. "Đã đính kèm" ở đây có nghĩa là một URL được lưu trữ, cùng với một chút siêu dữ liệu, chẳng hạn như mô tả ngắn và loại. Trong cơ sở dữ liệu, đây là một bảng nối để liên kết các tệp với các bản ghi.

Những gì tôi muốn đạt được cuối cùng trong Drupal:

Tất cả các bản ghi này được di chuyển vào dưới dạng nút, các tệp được nối với phương tiện và những tệp được nối với đúng nút theo tham chiếu thực thể. Các thực thể phương tiện được creted phải có nội dung meta cũ (mô tả, loại) trong các trường tùy chỉnh.

Tôi thu thập rằng cách này nên được thực hiện là:

  1. Di chuyển các tệp vào các thực thể tệp
  2. Sử dụng nhóm di chuyển (mô-đun migration_plus, migrate_tools và migrate_source_csv) sử dụng cùng một nguồn dữ liệu và migration_lookup để di chuyển các thực thể phương tiện
  3. Di chuyển các nút vào và sử dụng plugin quy trình entity_generate và value_key của ID mục tiêu hoặc thứ gì đó để liên kết các nút với các thực thể phương tiện phù hợp.

Các tệp đã ở đúng vị trí chúng cần trên máy chủ và các đường dẫn/URI được lưu trữ trong tệp csv cùng với mô tả và loại, trường ID duy nhất và ID của từng bản ghi liên quan.

Khi bắt đầu, tôi đã cố gắng nhập 30 tệp dưới dạng nhập độc lập. Mô-đun mig_files có vẻ không phù hợp lắm, chủ yếu là do tôi không thể tìm ra cách điều chỉnh mô-đun đó cho phù hợp với tình huống mà các thực thể phương tiện sẽ lấy dữ liệu trường từ csv... và tệp của uri được lưu trữ trong một csv cũng có.

Vì vậy, tôi nghĩ rằng tôi sẽ thử nó với hầu hết các tiêu chuẩn.

Đây là yaml của tôi:

uuid: 1bcec3e7-0a49-4473-87a2-6dca09b91abjan-test1
id: fileimptest
nhãn: Nhập tệp kiểm tra
nhóm_di chuyển: mặc định
nguồn:
  plugin: 'csv'
  đường dẫn: '/srv/imports/filetest1.tab'
  dấu phân cách: "\t"
  bao vây: '"'
  tiêu đề_offset: null
  id: [trợ giúp]
# không sử dụng hầu hết các trường này trong quá trình nhập tệp
# nhưng bao gồm vì có thể cần thiết để nhóm
# và di chuyển_lookup trong quá trình nhập phương tiện?
  lĩnh vực:
    0:
      tên: viện trợ
      nhãn: 'Id duy nhất'
    1:
      tên: tiêu đề
      nhãn: 'mô tả'
    2:
      tên: biểu mẫu
      nhãn: 'FormYN'
    3:
      tên: đường dẫn mới
      nhãn: 'đường dẫn'
    4:
      tên: donum
      nhãn: 'số tài liệu'
    5:
      tên: tài liệu
      nhãn: 'loại tài liệu'

tiến trình:
  uid:
    plugin: default_value
    default_value: 179
  uri: đường dẫn
điểm đến:
  plugin: thực thể: tập tin

Kết quả là 30 tệp thử nghiệm của tôi đã xuất hiện trong danh sách tệp dưới quyền quản trị/conent với trạng thái tạm thời. Các liên kết có vẻ chính xác, nhưng việc nhấp vào chúng dẫn đến truy cập 403 bị từ chối (quyền đối với thư mục là 777 và thuộc sở hữu của máy chủ web).(Tôi đang sử dụng hệ thống tệp riêng tư và có một số tệp được tải lên thông qua tiện ích trường bình thường: danh sách này có trạng thái 'vĩnh viễn'. Các liên kết trông giống nhau ngoài thư mục con nhưng mở bình thường khi được nhấp.)

Vì vậy, câu hỏi là:

  • Tôi đang làm gì sai cho đến nay?
  • Có cách nào tốt hơn? (Tôi khá chắc chắn là có, nhưng cái gì?)

(Chi tiết: uid 179 chỉ là người dùng do tôi tạo tên là "nhà nhập khẩu") Tôi nên lưu ý rằng tôi đã đọc cái nàycái này, và rất nhiều ví dụ trong các mô-đun liên quan. Họ đã cùng nhau thông báo những gì tôi đã nghĩ ra cho đến nay, ở mức độ tôi hiểu họ.)

Chỉnh sửa: "trạng thái tạm thời" chỉ có nghĩa là chưa có mục đích sử dụng nào, vì vậy không quan trọng vào thời điểm này. Điều duy nhất có vẻ không ổn với quá trình nhập thử nghiệm này là vấn đề truy cập bị từ chối. Quá trình di chuyển thiếu một cái gì đó cần thiết để hoạt động đầy đủ của hệ thống tệp riêng tư? Có thể khi sử dụng các tệp riêng tư, chúng chỉ có thể được xem nếu 'được sử dụng' trên một thực thể khác? Tôi chưa tìm thấy thông tin về điều này hoặc nghĩ ra cách để kiểm tra nó.

Edit2: theo nhận xét và câu trả lời bên dưới, trạng thái 'tạm thời' có thể được đặt theo chương trình trong quá trình nhập và quyền truy cập bị từ chối là bình thường trong các điều kiện này: khi tệp đã nhập vừa a) không được sử dụng ở bất kỳ đâu và b) được nhấp bởi người dùng khác với uid trên tệp.

Điểm:1
lá cờ cn

Trạng thái tạm thời là một trường trên thực thể tệp (trạng thái), bạn có thể đặt nó thành 1 trong quá trình nhập để làm cho nó vĩnh viễn.

tiến trình:
  uid:
    plugin: default_value
    default_value: 179
  uri: đường dẫn
  trạng thái: 
    plugin: default_value
    default_value: 1

Việc sử dụng tệp là một thứ riêng biệt (có liên quan) và không nên được sử dụng ở đây. Những tham chiếu đó sẽ được thêm vào khi bạn liên kết các tệp với nội dung, v.v.

lá cờ pe
Cảm ơn.Bạn có biết liệu việc sử dụng có ảnh hưởng đến khả năng mở tệp từ liên kết trong danh sách tệp không? Tôi có thể sẽ tiến hành kiểm tra nhóm di chuyển tệp+phương tiện tiếp theo, vì vậy tôi sẽ xem tác động đối với 403 của mình là gì. Hầu hết chỉ tò mò ngay bây giờ nếu thiếu bất kỳ thực thể liên quan nào sẽ giải thích lý do tại sao tất cả các tệp 403... hoặc nếu tôi có thể gặp sự cố khác.
lá cờ cn
Trong một trường hợp rất cụ thể, có vẻ như bạn có thể đang kích hoạt, vâng - nếu tệp là tạm thời, không có mục đích sử dụng và chủ sở hữu của tệp không phải là người dùng hiện tại, thì quyền truy cập sẽ bị từ chối.
lá cờ pe
Tôi có thể xác nhận rằng đây là lý do tại sao tôi bị từ chối truy cập vào những thứ này. Đã đăng nhập với tên UID 179 và các tệp có thể mở được. Cảm ơn bạn đã giúp đỡ!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.