web-dev-qa-db-ja.com

フィールド経由でアップロードされたファイルを削除しますか?

Drupal 8のフィールドウィジェットのコンテキスト外で使用されていないファイルを削除することは可能ですか?

admin/file/{file}/deleteのようなルートを見つけようとしましたが、この操作を実行するためのファイルモジュールに何も表示されません。

この問題が見つかりました 、これは関連していると思います。だから問題は残っています:ファイルを削除するにはどうすればいいですか?私は「孤立したファイルを後で削除する」をNeverに設定して、ファイルが間違えないようにしています削除されました。これは数か月前に私に起こりました。

3
Kevin

解決策の作成に取り掛かったので、ファイルパスを心配する必要がなくなり、削除されるファイルを明示的に制御する必要がなくなりました。

メディアエンティティのダウンロード

これで、孤立したファイルを削除するようにシステムを設定できます。ここでのactualドライブは、ファイルのURL(sites/default/files/foo.pdfを保持するためのものでした) )常に変化することから、この難問が生じます。

0
Kevin

UIのコアには、このための機能はありません。エンティティのロードと削除は、drush ev/core-cliまたはコンソールで実行できますが、これが基本的な唯一のオプションです。

ファイルエンティティはこのためのUIを提供しますが、おそらく もう使用しない を望まないでしょう。

とは言っても、その設定をNeverに設定することはIMHOの間違ったソリューションです。アップロードされただけで、たとえば再び削除されたファイルや実際には送信されなかったファイルも削除されないためです。詳細とそのための別の解決策については https://www.drupal.org/node/2801777 を参照してください。

つまり、media_entityを使用する場合は、メディアエンティティ自体が常にファイルの使用量としてカウントされるため、未使用のファイルを削除するためにDrupalを構成して保存する必要があります。メディアエンティティを手動で削除した。

4
Berdir

寄稿Drupal module Views Bulk Operations には、役立つD8ベータ版がリリースされています。

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

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

0
devad