Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 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 stream soportadas:

  • copy()

  • file_exists()

  • archivo_obtener_contenido()

  • file_put_contents()

  • filemtime()

  • tamaño de archivo()

  • 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 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)->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