서비스 모듈을 사용하여 REST API를 구현하고 있습니다. 하나의 리소스는 업로드 된 파일이있는 POST를 허용합니다. 서비스 전처리 기능 중에 파일을 temp 디렉토리에 저장합니다. 서비스 사후 처리 기능 중에 파일을 개인 디렉토리로 이동하고 file_usage_add를 호출하고 호스트 엔티티를 저장합니다. 임시 파일을 저장하고 임시 파일을 영구 위치로 이동하는 사이에 유효성 검사 오류가 발생하면 임시 파일을 명시 적으로 삭제하지 않습니다. file_usage 에이 파일에 대한 항목이 없으므로 drupal cron 이이를 처리 할 것이라고 생각했습니다. 그러나 cron이 나를 위해 이것을 돌보는 것처럼 보이지 않습니다. 이것이 왜 그런지에 대한 생각?
file_managed를 검토 할 때 삭제하려는 임시 파일이 표시됩니다. file_usage를 검토 할 때 해당 레코드가 표시되지 않습니다.
업데이트-하나의 추가 정보 : 대부분의 경우 파일이 실제로 없습니다. OS 재부팅으로 인해 / tmp 디렉토리가 지워진 것 같습니다. 그럼에도 불구하고 실제 파일을 더 이상 찾을 수 없으면 system_cron이 파일의 file_managed 항목을 계속 제거합니까?
기본 모바일 앱에서 파일을 업로드하기 시작한 이후이 문제가 발생했습니다. 파일 이름은 업로드 할 때마다 동일합니다. temp 파일 이름이 / tmp 디렉토리에없는 경우도 있지만 file_managed의 레코드가 해당 파일 이름의 URI와 함께 여전히 존재합니다. file_managed 테이블을 저장할 때 무결성 오류가 발생합니다. 임의의 파일 이름을 만들도록 앱을 업데이트 할 계획입니다. 그동안 데이터베이스와 이러한 파일을 관리하는 주변 "접착제"논리를 정리하고 싶습니다. system_cron이 나를 위해 모든 것을 할 것이라면 좋습니다. 그러나 내가 알 수 있듯이 system_cron은 file_managed에서 완전히 사용되지 않은 (그리고 참조되지 않은) 오래된 레코드를 제거하지 않습니다.