Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

Novidades na versão 1.18.

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

Registra um alias para o bucket, que permite que os arquivos dentro do bucket sejam acessados usando uma string básica de nome de arquivo (por exemplo gridfs://<bucket-alias>/<filename>).

function registerGlobalStreamWrapperAlias(string $alias): void
$alias : array
Uma string não vazia usada para identificar o bucket GridFS ao acessar arquivos usando o stream wrapper gridfs:// .

Depois de registrar um alias para o bucket, a revisão mais recente de um arquivo pode ser acessada usando uma string de nome de arquivo no formato gridfs://<bucket-alias>/<filename>.

Funções de fluxo suportadas:

No modo de leitura, o contexto do stream pode conter a opção gridfs['revision'] para especificar o número de revisão do arquivo a ser lido. Se omitido, a revisão mais recente é lida (revisão -1).

No modo de gravação, o contexto do fluxo pode conter a opção gridfs['chunkSizeBytes']. Se omitidos, os padrões são herdados da opção de instância Bucket .

As funções rename e unlink renomearão ou removerão todas as revisões de um nome de arquivo. Se o nome do arquivo não existir, estas funções lançarão um FileNotFoundException.

O exemplo a seguir demonstra como registrar um alias para um bucket GridFS e usar as funções file_exists(), file_get_contents() e file_put_contents() para ler e escrever no bucket.

Cada chamada para essas funções faz uma solicitação ao servidor.

<?php $database = (new MongoDB\Client)->selectDatabase('test');$bucket = $database->selectGridFSBucket(); $bucket->registerGlobalStreamWrapperAlias('mybucket'); var_dump(file_exists('gridfs://mybucket/hello.txt')); file_put_contents('gridfs://mybucket/hello.txt', 'Hello, GridFS!'); var_dump(file_exists('gridfs://mybucket/hello.txt')); echo file_get_contents('gridfs://mybucket/hello.txt'); unlink('gridfs://mybucket/hello.txt');

A saída seria então semelhante a:

bool(false)bool(true)Hello, GridFS!

Usando um contexto de fluxo, você pode especificar o número de revisão do arquivo a ser lido. Se omitido, a revisão mais recente é lida.

<?php $database = (new MongoDB\Client)->selectDatabase('test');$bucket = $database->selectGridFSBucket(); $bucket->registerGlobalStreamWrapperAlias('mybucket'); // Creating revision 0$handle = fopen('gridfs://mybucket/hello.txt', 'w');fwrite($handle, 'Hello, GridFS! (v0)');fclose($handle); // Creating revision 1$handle = fopen('gridfs://mybucket/hello.txt', 'w');fwrite($handle, 'Hello, GridFS! (v1)');fclose($handle); // Read revision 0$context = stream_context_create([ 'gridfs' => ['revision' => 0],]);$handle = fopen('gridfs://mybucket/hello.txt', 'r', false, $context);echo fread($handle, 1024);

A saída seria então semelhante a:

Hello, GridFS! (v0)