버전 1.18에 추가 되었습니다.
정의
매개변수
$alias: 배열gridfs://스트림 래퍼를 사용하여 파일에 액세스할 때 GridFS 버킷을 식별하는 데 사용되는 비어 있지 않은 string 입니다.
행동
버킷의 별칭을 등록한 후 gridfs://<bucket-alias>/<filename> 형식의 파일 이름 string 을 사용하여 파일의 가장 최근 수정본에 액세스할 수 있습니다.
지원되는 스트림 함수:
'r', 'rb', 'w' 및 'wb'모드가 있는 fopen()
읽기 모드 에서 스트림 컨텍스트에는 읽을 파일 의 수정본 번호를 지정하는 gridfs['revision'] 옵션이 포함될 수 있습니다. 생략하면 가장 최근의 수정본을 읽습니다(수정본 -1).
쓰기 모드에서 스트림 컨텍스트에는 gridfs['chunkSizeBytes'] 옵션이 포함될 수 있습니다. 생략하면 기본값은 Bucket 인스턴스 옵션에서 상속됩니다.
rename 및 unlink 함수는 파일 이름의 모든 수정본을 제거하거나 이름을 변경합니다. 파일 이름이 존재하지 않으면 이러한 함수는 FileNotFoundException 를 발생시킵니다.
예시
gridfs:// 스트림 래퍼 (wrapper)를 사용하여 GridFS 버킷을 읽고 쓰기 (write)
다음 예시에서는 GridFS 버킷에 별칭을 등록하고 file_exists(), file_get_contents() 및 file_put_contents() 함수를 사용하여 버킷을 읽고 쓰는 방법을 보여 줍니다.
이러한 함수를 호출할 때마다 서버에 요청이 발생합니다.
$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');이 경우 출력은 다음과 유사합니다:
bool(false)bool(true)Hello, GridFS!파일의 특정 수정본 읽기
스트림 컨텍스트를 사용하여 읽을 파일의 수정본 번호를 지정할 수 있습니다. 생략하면 가장 최근의 수정본을 읽습니다.
$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);이 경우 출력은 다음과 유사합니다:
Hello, GridFS! (v0)