# mongoc_gridfs_bucket_download_to_stream()

## Synopsis

    bool
    mongoc_gridfs_bucket_download_to_stream (mongoc_gridfs_bucket_t *bucket,
                                             const bson_value_t *file_id,
                                             mongoc_stream_t *destination,
                                             bson_error_t *error);

## Parameters

- `bucket`: A mongoc_gridfs_bucket_t.

- `file_id`: A `bson_value_t` of the id of the file to download.

- `destination`: A mongoc_stream_t which receives data from the downloaded file.

- `error`: A `bson_error_t` to receive any error or `NULL`.

## Description

Reads from the GridFS file and writes to the `destination` stream.

Writes the full contents of the file to the `destination` stream. The `destination` stream is not closed after calling mongoc_gridfs_bucket_download_to_stream(); call mongoc_stream_close() after.

This function is considered a retryable read operation. Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. If `retryreads` is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

## Returns

True if the operation succeeded. False otherwise, and sets `error`.

See also

mongoc_stream_file_new() and mongoc_stream_file_new_for_path(), which can be used to create a destination stream from a file.