Docs Menu
Docs Home
/ /

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

Nuevo en la versión 1.18.

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

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

function registerGlobalStreamWrapperAlias(string $alias): void
$alias : matriz
Una cadena no vacía que se utiliza para identificar el depósito GridFS al acceder a archivos mediante el contenedor de flujo 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 transmisión admitidas:

  • Copiar()

  • file_exists()

  • archivo_obtener_contenido()

  • archivo_poner_contenido()

  • filemtime()

  • tamaño de archivo()

  • archivo()

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

  • renombrar()

  • unlink()

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

En modo de escritura, 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 renombran o eliminan todas las revisiones de un nombre de archivo. Si el nombre de archivo no existe, estas funciones generan un error FileNotFoundException.

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

Cada llamada a estas funciones realiza una solicitud al 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');

El resultado sería entonces similar a lo siguiente:

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

Usando un contexto de flujo, puede especificar el número de revisión del archivo que se leerá. Si se omite, se lee la revisión más reciente.

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

El resultado sería entonces similar a lo siguiente:

Hello, GridFS! (v0)

Volver

abrirUploadStream()

En esta página