For AI agents: a documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

New in version 1.18.

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

Registers an alias for the bucket, which enables files within the bucket to be accessed using a basic filename string (e.g. gridfs://<bucket-alias>/<filename>).

function registerGlobalStreamWrapperAlias(string $alias): void
$alias : array
A non-empty string used to identify the GridFS bucket when accessing files using the gridfs:// stream wrapper.

After registering an alias for the bucket, the most recent revision of a file can be accessed using a filename string in the form gridfs://<bucket-alias>/<filename>.

Supported stream functions:

In read mode, the stream context can contain the option gridfs['revision'] to specify the revision number of the file to read. If omitted, the most recent revision is read (revision -1).

In write mode, the stream context can contain the option gridfs['chunkSizeBytes']. If omitted, the defaults are inherited from the Bucket instance option.

The functions rename and unlink will rename or remove all revisions of a filename. If the filename does not exist, these functions throw a FileNotFoundException.

The following example demonstrates how to register an alias for a GridFS bucket and use the functions file_exists(), file_get_contents(), and file_put_contents() to read and write to the bucket.

Each call to these functions makes a request to the server.

<?php $database = (new MongoDB\Client)->getDatabase('test');$bucket = $database->getGridFSBucket(); $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');

The output would then resemble:

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

Using a stream context, you can specify the revision number of the file to read. If omitted, the most recent revision is read.

<?php $database = (new MongoDB\Client)->getDatabase('test');$bucket = $database->getGridFSBucket(); $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);

The output would then resemble:

Hello, GridFS! (v0)