# Document file I/O for server components (IRPCDocumentOperationsFileIOInternal)

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/

Server-to-server variants of file upload commit and file size checks.

- **gRPC service:** `MFiles.IRPCDocumentOperationsFileIOInternal`
- **Book and level:** [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md), specialized
- **Methods:** 2
- **Proto file:** [`mfiles/IRPCDocumentOperationsFileIOInternal.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCDocumentOperationsFileIOInternal.proto)

<a id="overview"></a>

## Overview

**For M-Files components only.** M-Files Server calls these methods on another M-Files Server
when it forwards a file operation of a session that it relays to that server. No M-Files client
calls them. Applications should use the public equivalents in
[IRPCObjectOperations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/index.md) instead:

| Internal method | Use instead |
|---|---|
| [UploadFileCommit2](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/UploadFileCommit2/index.md) | [UploadFileCommit](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/UploadFileCommit/index.md) |
| [GetFileOutline](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/GetFileOutline/index.md) | [GetFileSize](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/GetFileSize/index.md), or `file_outline` of [DownloadFile_Begin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCObjectOperations/DownloadFile_Begin/index.md) |

Both methods need a vault session of a login that has a user account in the vault. They return
the vault's metadata structure version in the `mfiles-metadata-version-bin` trailer.

<a id="methods"></a>

## Methods

| Method | Summary | Facts |
|---|---|---|
| [GetFileOutline](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/GetFileOutline/index.md) | Gets the size and MD5 checksum of a file version. | `internal: not for applications` `write` `session or assertion` `returns metadata structure version` |
| [UploadFileCommit2](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCDocumentOperationsFileIOInternal/UploadFileCommit2/index.md) | Completes an upload made with UploadFile and stores it as the new content of the file; returns only the data file version. | `internal: not for applications` `write` `session or assertion` `returns metadata structure version` |
