Bir REST API uygulamak için services modülünü kullanıyorum. Bir kaynak, yüklenen dosyaları içeren POST'lara izin verir. Hizmetler ön işlem işlevi sırasında dosyayı geçici dizine kaydederim. Hizmetler sonrası işlem işlevi sırasında, dosyayı özel bir dizine taşıyorum, file_usage_add'yi çağırıyorum ve ana bilgisayar varlığını kaydediyorum. Geçici dosyayı kaydetme ve geçici dosyayı kalıcı bir konuma taşıma arasında bir doğrulama hatası oluştuğunda, geçici dosyayı açıkça silmiyorum. Drupal cron'un benim için bununla ilgileneceğini düşündüm, çünkü file_usage'de bu dosya için herhangi bir giriş yok. Ancak, cron benim için bununla ilgileniyor gibi görünmüyor. Bunun neden olduğuna dair düşünceleriniz var mı?
File_managed dosyasını incelerken, silmek istediğim geçici dosyayı görüyorum. File_usage dosyasını incelerken, karşılık gelen bir kayıt görmüyorum.
Güncelleme - Ek bir bilgi daha: çoğu durumda dosya aslında eksik. Bu işletim sistemi / tmp dizini temizleyerek yeniden başlatma nedeniyle olduğuna inanıyorum. Ne olursa olsun, gerçek dosya artık bulunamazsa, system_cron yine de bir dosya için file_managed girdisini kaldırabilir mi?
Yerel bir mobil uygulamadan dosya yüklemeye başladığımdan beri bu sorun ortaya çıktı. Dosya adı her yükleme ile aynıdır. Geçici dosya adının / tmp dizininde bulunmadığı, ancak dosya_yönetimindeki bir kaydın yine de bu dosya adının bir URI'sı ile var olduğu bazı durumlar vardır. Bu yüzden file_managed tablosu kaydedilirken bir bütünlük hatası alıyorum. Rasgele bir dosya adı oluşturmak için uygulamayı güncellemeyi planlıyorum. Bu arada, bu dosyaları yöneten veritabanını ve çevresindeki "tutkal" mantığını temizlemek istiyorum. System_cron hepsini benim için yapacaksa harika. Ama ne söyleyebilirim ki, system_cron file_managed eski, tamamen kullanılmayan (ve referanssız) kayıtları kaldırmıyor.