Onde os arquivos temporários são criados?


12

Quero saber onde o Drupal (ou seus módulos) cria arquivos temporários. Eles são colocados em sites / padrão?

Estou falando especialmente sobre o Drupal 6.


Os módulos podem tentar criar arquivos temporários em qualquer lugar do site drupal, mas terão êxito apenas onde a configuração do servidor permitir. Veja: drupal.org/node/244924
August1914

Respostas:


16

Os arquivos são criados no diretório cujo nome é retornado de file_directory_temp (), que retorna:

  • O valor da variável Drupal "file_temporary_path", que é definida na página de configuração em admin / config / media / sistema de arquivos (Drupal 7) ou admin / settings / file-system (Drupal 6).

  • Se essa variável Drupal não estiver definida, a função verificará um dos seguintes diretórios; se um desses diretórios existir, ele será retornado (e usado).

    • o diretório retornado de ini_get('upload_tmp_dir')
    • no Windows, os diretórios "c: \ windows \ temp" e "c: \ winnt \ temp".
    • em sistemas operacionais diferentes do Windows, o diretório "/ tmp".
    • no PHP versão 5.2.1 ou superior, o diretório retornado por sys_get_temp_dir().
  • Se a variável "file_temporary_path" não estiver configurada e os diretórios listados no ponto anterior não existirem ou não forem graváveis, a função usará o valor da variável Drupal "file_public_path"; por padrão, esse diretório tem o valor conf_path() . '/files'que é o diretório "arquivos" contidos no diretório que contém o arquivo setting.php usado no site do Drupal.

A função configurou a variável "file_temporary_path" para o diretório encontrado.

Até onde eu sei, qualquer módulo abre arquivos temporários usando um caminho que começa com "temporary: //" (disponível apenas no Drupal 7 e superior) ou usos file_directory_temp(). O diretório retornado file_directory_temp()pode mudar de sistema para sistema, mas os módulos sempre usam esse diretório.

Os módulos Drupal não têm permissão para escrever o diretório que contém os módulos; é muito difícil um módulo usar esse diretório para criar arquivos temporários. Se você encontrar um módulo que usa o diretório que contém os módulos (ou qualquer subdiretório desse diretório), informe-o como um bug.


sua resposta se aplica ao Drupal 6 ou apenas ao Drupal 7?
IStryker

1
Ela se aplica a ambos, como file_directory_temp()é definido no Drupal 6 também, e o código para a função não muda passando de Drupal 6 para Drupal 7.
kiamlaluno

3

A página de configuração em admin / settings / file-system contém configurações para o diretório usado para arquivos temporários.

Alguns módulos podem escolher um diretório diferente para arquivos temporários. Não há local padrão para a pasta.

Por exemplo, o módulo ctools criará arquivos em cache temporários no diretório / sites / default / files / ctools. Então isso pode variar.


Você está dizendo que um módulo pode criar um arquivo temporário em qualquer lugar do site drupal? Também pode criar em root / themes root / modules etc?
AgA 22/07/11

Sim, os módulos podem criar arquivos temporários em qualquer lugar. Eles geralmente os mantêm em uma pasta, assim como o ctools. Da minha experiência, é raro criar um diretório temporário próprio. A maioria dos módulos usa o diretório temporário padrão sobre o qual Chris fala.
IStryker

Hoje, vi um erro na seção de relatórios / status do meu site dizendo "o diretório de arquivos não está protegido" e sugeri ao drupal.org/forum/newsletters/… para criar .htaccess no diretório de arquivos e também colocar "Negar de all "em .htaccess encontrado no diretório de arquivos temporários para impedir a execução de código. Estou confuso. É uma pasta 'tmp' em algum lugar ou em todos os módulos que possui sua própria pasta? Tenho que colocar o arquivo .htaccess em todas as pastas?
Umair
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.