# mongoc_gridfs_bucket_open_upload_stream()

## Synopsis

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

## Parameters

- `bucket`: A mongoc_gridfs_bucket_t.

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

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

- `file_id`: A `bson_value_t` to receive the generated id of the file 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. The file id is generated automatically. To specify an explicit file id, use mongoc_gridfs_bucket_open_upload_stream_with_id().

## 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_with_id()
mongoc_gridfs_bucket_stream_error()