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.
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?
Respostas:
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).
ini_get('upload_tmp_dir')
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 retornadofile_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.
fonte
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.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.
fonte