No ambiente padrão App Engine para PHP 5, o sistema de arquivos local em que seu aplicativo está implantado não é gravável. Esse comportamento garante a segurança e escalonabilidade do aplicativo.
No entanto, se o aplicativo precisar gravar e ler arquivos no ambiente de execução, o ambiente padrão para PHP 5 fornecerá um wrapper de stream integrado ao Google Cloud Storage. Isso permite que você use muitas das funções padrão do sistema de arquivos PHP para ler e gravar arquivos.
Há duas maneiras de gravar arquivos no Google Cloud Storage:
- Gravar arquivos do aplicativo
- Gravação de arquivos simples
- Gravação de arquivos em streaming.
- Permitir que o usuário faça upload dos arquivos para o Google Cloud Storage
Como gravar arquivos do aplicativo
Se você gravar arquivos do aplicativo, poderá gravar o arquivo inteiro de uma vez ou fazer streaming da gravação do arquivo.
O wrapper de stream do App Engine para Cloud Storage é integrado ao
ambiente de execução e é usado quando você fornece um nome de arquivo que começa com gs://
. O wrapper
requer que o nome do bucket ou do objeto de arquivo esteja no formato:
gs://bucket_name/desired_object_name
Gravação de arquivos simples
Para gravar dados no Google Cloud Storage do seu aplicativo, use
file_put_contents
, usando um URL de armazenamento em nuvem válido. Exemplo:
em que my_bucket
é um
bucket do Google Cloud Storage configurado corretamente.
Se preferir, caso queira usar as opções de stream para fornecer permissões, armazenamento em cache e/ou opções de metadados, você poderá gravar o arquivo da seguinte maneira:
Gravação de arquivos em streaming
Como alternativa, você pode usar fopen
/fwrite
para gravar dados em
streaming:
Quando você usa streaming, observe que os dados são liberados para o Google Cloud Storage em partes menores. Você não precisa saber antecipadamente o tamanho total dos dados a serem gravados. Ele será calculado quando o recurso de arquivo for fechado.
Esse é um jeito básico de gravar arquivos. Para casos de uso especiais e gerenciamento mais avançado de arquivos, consulte os tópicos listados em Próximos passos.
Como excluir arquivos
Para excluir o próprio arquivo, use a função unlink() (em inglês) do PHP.
Uploads de usuários
Para detalhes sobre essa opção de gravação de arquivo, consulte Como permitir que usuários façam upload de arquivos.
Como ler arquivos
Para informações sobre como ler arquivos do Google Cloud Storage, consulte Como conceder acesso público a arquivos.
Configuração e requisitos
Você precisa ativar o Google Cloud Storage e criar um bucket. Consulte Configuração para mais detalhes.
Funções permitidas do sistema de arquivos do PHP 5
Muitas das funções de arquivo do PHP 5 mais usadas são permitidas também com as funções informativas e de diretório. Para uma lista completa das funções do PHP permitidas, consulte Funções do sistema de arquivos PHP 5 compatíveis.
Recursos estendidos fornecidos pela API Tools do Cloud Storage
O wrapper de stream do Google Cloud Storage permite usar chamadas do sistema de arquivos PHP. No entanto, há recursos estendidos disponíveis que você pode precisar para uso ideal do Google Cloud Storage. Esses recursos estendidos são fornecidos na API Cloud Storage Tools:
Essa API oferece um conjunto de funções que permitem a disponibilização de arquivos e imagens, além de outros utilitários úteis. Explicaremos várias dessas funções nas outras páginas de tópicos.
Há alguma outra maneira de ler e gravar arquivos?
Um aplicativo PHP 5 do App Engine precisa usar o wrapper de stream do Cloud
Storage para gravar arquivos no ambiente de execução. No entanto, se um aplicativo precisar ler arquivos, e esses
arquivos forem estáticos, você poderá ler arquivos estáticos enviados com seu aplicativo
usando funções de sistema de arquivos PHP, como file_get_contents
.
Exemplo:
em que o caminho especificado precisa ser relativo ao script que o acessa.
É preciso fazer upload dos arquivos em um subdiretório do aplicativo ao implantar
o aplicativo no App Engine e configurar o arquivo app.yaml
para que o
aplicativo possa acessar esses arquivos. Para obter detalhes completos, consulte
Configuração do aplicativo PHP 5 com app.yaml
.
Na configuração do app.yaml
, observe que se você usar um arquivo estático ou um gerenciador de diretório
(static_files
ou static_dir
), deverá especificar
application_readable
definido como verdadeiro, senão seu aplicativo não poderá ler os arquivos.
No entanto, se os arquivos forem disponibilizados por um gerenciador script
,
isso não será necessário, porque esses arquivos são legíveis por gerenciadores de script por padrão.
A seguir
Leia os tópicos a seguir para ver detalhes sobre o uso da API Cloud Storage Tools:
- Configuração, instruções de configuração rápida.
- Como conceder acesso público a arquivos, mostra como permitir que os usuários façam o download de arquivos pelo navegador.
- Como permitir que usuários façam upload de arquivos, mostra como fazer upload de arquivos diretamente do navegador, ignorando o aplicativo.
- Como trabalhar com arquivos de imagem, mostra os métodos ideais de gerenciamento e disponibilização de imagens.
- Gerenciamento de arquivos avançado, abrange o seguinte:
- Permissões, armazenamento em cache e opções de stream de metadados.
- Suporte às funções do sistema de arquivos PHP.
- Uso de PHP
include
erequire
. - Leitura e gravação de metadados personalizados.
- Leituras de arquivos armazenados em cache.