Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

Nuevo en la versión 1.18.

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

Registra un alias para el bucket, lo que permite acceder a los archivos dentro del bucket utilizando una string de nombre de archivo básica (por ejemplo, gridfs://<bucket-alias>/<filename>).

function registerGlobalStreamWrapperAlias(string $alias): void
$alias : arreglo
Una cadena no vacía utilizada para identificar el bucket GridFS cuando se accede a los archivos mediante el contenedor de stream gridfs://.

Después de registrar un alias para el bucket, se puede acceder a la revisión más reciente de un archivo utilizando una string de nombre de archivo en el formato gridfs://<bucket-alias>/<filename>.

Funciones de stream soportadas:

  • copy()

  • file_exists()

  • file_get_contents()

  • file_put_contents()

  • filemtime()

  • filesize()

  • archivo()

  • fopen() con los modos "r", "rb", "w" y "wb"

  • renombrar()

  • unlink()

En el modo de lectura, el contexto del flujo puede incluir la opción gridfs['revision'] para especificar el número de revisión del archivo que se desea leer. Si se omite, se leerá la revisión más reciente (revisión -1).

En el modo de guardar, el contexto del flujo puede contener la opción gridfs['chunkSizeBytes']. Si se omite, los valores predeterminados se heredan de la opción de instancia Bucket.

Las funciones rename y unlink renombrarán o removerán todas las revisiones de un nombre de archivo. Si el archivo no existe, estas funciones generan un FileNotFoundException.

El siguiente ejemplo demuestra cómo registrar un alias para un bucket GridFS y usar las funciones file_exists(), file_get_contents(), y file_put_contents() para leer y guardar en el bucket.

Cada vez que se llama a estas funciones se realiza una solicitud al 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');

La vista de salida se ilustraría como sigue:

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

Al utilizar un contexto de stream, se puede especificar el número de revisión del archivo a leer. Si se omite, se lee la revisión más reciente.

<?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);

La vista de salida se ilustraría como sigue:

Hello, GridFS! (v0)

Volver

openUploadStream()

En esta página