Dove vengono creati i file temporanei?


12

Voglio sapere dove Drupal (o i suoi moduli) creano file temporanei. Sono inseriti in siti / predefiniti?

Sto parlando in particolare di Drupal 6.


I moduli possono provare a creare file temporanei ovunque sul sito drupal, ma riusciranno solo dove la configurazione del server lo consente. Vedi: drupal.org/node/244924
1914,

Risposte:


16

I file vengono creati nella directory il cui nome viene restituito da file_directory_temp () che restituisce:

  • Il valore della variabile Drupal "file_temporary_path", che è impostato dalla pagina delle impostazioni su admin / config / media / file-system (Drupal 7) o admin / settings / file-system (Drupal 6).

  • Se quella variabile Drupal non è impostata, la funzione controlla una delle seguenti directory; se esiste una di quelle directory, viene restituita (e utilizzata).

    • la directory restituita da ini_get('upload_tmp_dir')
    • su Windows, le directory "c: \ windows \ temp" e "c: \ winnt \ temp."
    • su sistemi operativi diversi da Windows, la directory "/ tmp".
    • su PHP versione 5.2.1 o successiva, la directory restituita da sys_get_temp_dir().
  • Se la variabile "file_temporary_path" non è impostata e le directory che ho elencato nel punto precedente non esistono o non sono scrivibili, la funzione utilizza il valore della variabile Drupal "file_public_path"; di default quella directory ha il valore conf_path() . '/files'che è la directory "files" contenuta nella directory contenente il file setting.php usato per il sito Drupal.

La funzione imposta la variabile "file_temporary_path" sulla directory trovata.

Per quanto ne so, qualsiasi modulo apre file temporanei usando un percorso che inizia con "temporaneo: //" (disponibile solo in Drupal 7 e versioni successive) o usi file_directory_temp(). La directory restituita da file_directory_temp()può cambiare da sistema a sistema, ma i moduli usano sempre quella directory.

I moduli Drupal non hanno il permesso di scrivere la directory contenente i moduli; è abbastanza difficile che un modulo usi quella directory per creare file temporanei. Se trovi un modulo che utilizza la directory contenente i moduli (o qualsiasi sottodirectory di quella directory) segnalalo come un bug.


la tua risposta si applica a Drupal 6 o solo a Drupal 7?
iStryker,

1
Si applica ad entrambi, come file_directory_temp()definito anche in Drupal 6, e il codice per la funzione non cambia passando da Drupal 6 a Drupal 7.
kiamlaluno

3

La pagina delle impostazioni in admin / settings / file-system contiene le impostazioni per la directory utilizzata per i file temporanei.

Alcuni moduli potrebbero scegliere una directory diversa per i file temporanei. Non esiste un percorso di cartella standard.

Ad esempio, il modulo ctools creerà i file temporanei nella cache nella directory / sites / default / files / ctools. Quindi può variare.


Stai dicendo che un modulo può creare file temporaneo ovunque nel sito drupal? Può anche creare in root / temi root / moduli ecc.?
AgA

Sì, i moduli possono creare file temporanei ovunque. Di solito li tengono in una cartella, così come ctools. Dalla mia esperienza i moduli che creano la propria directory temporanea sono rari. La maggior parte dei moduli utilizza la directory temporanea predefinita di cui parla Chris.
iStryker,

@iStryker Oggi ho visto un errore nella sezione rapporti / stato del mio sito Web che diceva "la directory dei file non è protetta" e ho suggerito a drupal.org/forum/newsletters/… di creare .htaccess nella directory dei file e di inserire anche "Nega da tutto "in .htaccess trovato nella directory dei file temporanei per la prevenzione dell'esecuzione del codice. Sono confuso. È una cartella 'tmp' in cui o ogni modulo ha la sua cartella? Devo mettere il file .htaccess in ogni cartella?
Umair,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.