web-dev-qa-db-ja.com

ファイルを正しい方法で削除するにはどうすればよいですか?

基本的なページに添付ファイルフィールドを追加しました。

たとえば、ページから特定のファイルを削除したい場合、どうすればよいですか?

ファイルシステムからファイルを削除することは、データベースのレコードを保持するため、正しい方法ではないことを知っています。

ただし、基本ページの「編集」ページで削除すると、データベースにもレコードが保持されます。

存在しないファイルや使用されなくなったファイルのデータベースをクリーンアップするにはどうすればよいですか?

私はDrupal 8、MediaおよびFileエンティティブラウザモジュールを使用しています。

6
Jedeco

ただし、基本ページの[編集]ページで削除した場合でも、データベースにレコードが保持されます。

正しいですが、編集後、ファイルのstatusは0に設定する必要があります(同じファイルが他で使用されている場合を除きます)。Drupalには、ファイルシステムとデータベースの両方からこれらの古いファイルを自動的にクリーンアップします。これらはexample.com/admin/config/media/file-systemで構成できます。デフォルトの時間は6時間に設定されています(cronが実行されるタイミングによっては、次のcron実行にかかる場合があります)。

ただし、この自動削除には既知の問題があることに注意してください。 リリースノートファイル使用状況の追跡により予期しないファイルが削除されるセクションを参照してください。

5
Neograph734

寄稿Drupal module Views Bulk Operations には、UIを介して孤立したファイルエンティティを削除するのに役立つ初期のD8 Alphaリリースがあります。

モジュールをインストールし、ファイルビューを編集して、[ビューの一括操作]グローバルフィールドを追加し、[選択したエンティティの削除]アクションを含めるように構成します。

モジュールは現在、ファイルをアップロードしたユーザーのみが削除を実行できるため、管理者の観点から制限されています。他のユーザー(user-1を含む)と同じようにしようとすると、失敗します(ログエラーメッセージが表示されます)。うまくいけば、この制限は今後のリリースで修正されるでしょう。

1
devad