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.
Menu Docs

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)->getDatabase('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)->getDatabase('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)