# mongoc_gridfs_bucket_open_upload_stream_with_id()

## Synopsis

    mongoc_stream_t *
    mongoc_gridfs_bucket_open_upload_stream_with_id (mongoc_gridfs_bucket_t *bucket,
                                                     const bson_value_t *file_id,
                                                     const char *filename,
                                                     const bson_t *opts,
                                                     bson_error_t *error)
       BSON_GNUC_WARN_UNUSED_RESULT;

## Parameters

- `bucket`: A mongoc_gridfs_bucket_t.

- `file_id`: A `bson_value_t` specifying the id of the created file.

- `filename`: The name of the file to create.

- `opts`: A `bson_t` or `NULL`.

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

`opts` may be NULL or a BSON document with additional command options:

- `chunkSizeBytes`: An `int32` chunk size to use for this file. Overrides the `chunkSizeBytes` set on `bucket`.

- `metadata`: A `bson_t` representing metadata to include with the file.

## Description

Opens a stream for writing to a new file in GridFS for a specified file id. To have libmongoc generate an id, use mongoc_gridfs_bucket_open_upload_stream().

## Returns

A mongoc_stream_t that can be written to or `NULL` on failure. Errors on this stream can be retrieved with mongoc_gridfs_bucket_stream_error(). After calling mongoc_stream_close() the file is completely written in GridFS.

See also

mongoc_gridfs_bucket_open_upload_stream()
mongoc_gridfs_bucket_stream_error()