web-dev-qa-db-ja.com

一時ファイルはどこに作成されますか?

Drupal(またはそのモジュール)が一時ファイルを作成する場所を知りたいのですが、それらはサイト/デフォルトに置かれていますか?

特にDrupal 6.について話している。

12
AgA

ファイルは、名前が file_directory_temp() から返されるディレクトリに作成されます。

  • Drupal変数 "file_temporary_path"の値。これは、admin/config/media/file-system(Drupal 7)またはadmin/settings/file-system(Drupalの設定ページから設定されます。 6)。

  • Drupal変数が設定されていない場合、関数は次のディレクトリの1つをチェックします。これらのディレクトリの1つが存在する場合は、それが返されます(そして使用されます)。

    • ini_get('upload_tmp_dir')から返されたディレクトリ
    • windowsでは、ディレクトリ「c:\ windows\temp」および「c:\ winnt\temp」。
    • windowsとは異なるOSでは、ディレクトリ「/ tmp」。
    • PHPバージョン5.2.1以降、sys_get_temp_dir()によって返されるディレクトリ。
  • 変数 "file_temporary_path"が設定されておらず、前のポイントでリストしたディレクトリが存在しないか、書き込み可能でない場合、関数はDrupal variable "file_public_path"の値を使用します;デフォルトでは、そのディレクトリの値はconf_path() . '/files'です。これは、Drupalサイトで使用されるsetting.phpファイルを含むディレクトリに含まれるディレクトリ "files"です。

関数は、変数「file_temporary_path」を、見つかったディレクトリに設定しました。

私の知る限り、どのモジュールも「temporary://」で始まるパスを使用して一時ファイルを開きます(Drupal 7以降でのみ使用可能)またはfile_directory_temp()を使用します)。 file_directory_temp()から返されるディレクトリはシステムによって異なる場合がありますが、モジュールは常にそのディレクトリを使用します。

Drupalモジュールには、モジュールを含むディレクトリへの書き込み権限がありません。モジュールがそのディレクトリを使用して一時ファイルを作成することは非常に困難です。モジュールを含むディレクトリ(またはそのディレクトリのサブディレクトリ)を使用するモジュールを見つけた場合は、バグとして報告してください。

16
kiamlaluno

Admin/settings/file-systemの設定ページには、一時ファイルに使用されるディレクトリの設定が含まれています。

一部のモジュールでは、一時ファイル用に別のディレクトリを選択できます。標準のフォルダの場所はありません。

たとえば、ctoolsモジュールは/ sites/default/files/ctoolsディレクトリに一時キャッシュファイルを作成します。したがって、異なる場合があります。

3
chrisjlee