IRPCObjectOperations.UploadFileCommit

View as Markdown

Vault API / core write session or assertion returns metadata structure version

Completes an upload made with UploadFile and stores it as the new content of the file.

ServiceObjects, versions, properties and files MFiles.IRPCObjectOperations
gRPC method/MFiles.IRPCObjectOperations/UploadFileCommit
HTTP (mf-http-grpc)POST /grpc/v1/upload-file-commit
RequestUploadFileCommitRequest
ResponseUploadFileCommitResponse
Book and levelVault API, core
Kindwrite
SessionRequired: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata).
Idempotentno
Returns metadata structure versionyes (in the mfiles-metadata-version-bin trailer)
Streamingnone (unary)

Remarks

The object must be checked out to the caller, and the caller needs edit access to it. file.size must equal the number of bytes uploaded ("File size mismatch." otherwise) and file.size_precision must be FILE_SIZE_PRECISION_EXACT. If obj_id is set, it must be the object that owns the file ("The parameter is incorrect. (Object ID mismatch.)"). The title and extension in file are ignored; rename a file with RenameObjectFile. The upload is removed after the commit, also when the commit fails.

Request: UploadFileCommitRequest

Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

FieldTypeDescription
upload_idint32The ID from UploadFile.
obj_idObjIDThe object that owns the file.
obj_id.typeint32The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID).
obj_id.item_idItemIDThe ID of the object within its type, in item_id.internal_id.
obj_id.item_id.internal_idint32The ID of the object or value list item.
obj_id.item_id.external_repository_idExternalRepositoryIDUsed only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault.
fileFileThe file and its new size. title and extension are ignored.
file.file_verFileVerThe file and its version. Pass it unchanged in an ObjFileVer to download the file.
file.file_ver.file_idFileIDThe file.
file.file_ver.typeFileVerTypeFILE_VER_TYPE_SPECIFIC for a file version number.Values: FILE_VER_TYPE_UNINITIALIZED (0), FILE_VER_TYPE_LATEST (1), FILE_VER_TYPE_ANY (2), FILE_VER_TYPE_SPECIFIC (3).
file.file_ver.internal_versionint32The file version number.
file.file_ver.external_repository_versionstringUsed only for files in external repositories. Leave empty.
file.file_ver.external_repository_sort_keyint64Used only for files in external repositories. Leave 0.
file.titlestringThe file name without the extension.
file.extensionstringThe file name extension without the dot, for example "pdf".
file.sizeint64The size of the file in bytes. Exact when size_precision is FILE_SIZE_PRECISION_EXACT.
file.size_precisionFileSizePrecisionHow exact size is. Do not rely on size if it is FILE_SIZE_PRECISION_UNKNOWN.Values: FILE_SIZE_PRECISION_EXACT (0), FILE_SIZE_PRECISION_ESTIMATE (1), FILE_SIZE_PRECISION_UNKNOWN (2).
file.created_at_utcgoogle.protobuf.TimestampThe time in UTC the file was originally created.
file.accessed_at_utcgoogle.protobuf.TimestampThe time in UTC the file was last accessed (e.g. read).
file.written_at_utcgoogle.protobuf.TimestampThe time in UTC the file was last written to.
file.changed_at_utcgoogle.protobuf.TimestampThe time in UTC the file was last written to or its attributes were changed.
file.guidstringGUID of the file.
file.md5_checksumstringThe MD5 checksum of the file as 32 lowercase hexadecimal digits, if available.
file.is_missingboolTrue, if the file is missing.
file.is_content_volatileboolTrue, if the file physical content is volatile. I.e. the physical content can change without the version number change, as long as the logical content is same. The file content is guaranteed to stay physically consistent within single download session only.
file.flagsOBJECTFILEFLAGSObject file flags.
file.flags.allboolSpecifies all flags set; Including any future flags.
file.flags.can_be_edited_externallyboolNext available value.
file.master_storage_file_refstringAn optional File reference (GUID) to external Master Storage API. Only used with Master Storage, otherwise empty.
low_digestint64If not zero, specifies the low-order part of the MD5 checksum of the uploaded file.
high_digestint64If not zero, specifies the high-order part of the MD5 checksum of the uploaded file.

Response: UploadFileCommitResponse

Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

FieldTypeDescription
object_info_availableboolTrue if after_upload is filled.
after_uploadObjectVersionExThe version information of the object after the upload, if object_info_available is true.
after_upload.version_infoObjectVersionObject Version information.
after_upload.version_info.versionObjVerVersionThe version number, as a specific version.
after_upload.version_info.display_versionstringThe version label to show, if it differs from the version number; empty otherwise.
after_upload.version_info.titlestringThe title (name) of the object in this version.
after_upload.version_info.is_single_file_objectboolTrue if the object is a single-file document, which has exactly one file.
after_upload.version_info.has_relationships_from_thisboolNote: this field is deprecated. True if relationships from this object version to one or more documents exist.
after_upload.version_info.has_relationships_to_thisboolNote: this field is deprecated. True if relationships from one or more documents to this object version exist.
after_upload.version_info.has_assignmentsboolTrue if relationships from one or more assignments to this object version exist.
after_upload.version_info.last_modified_at_utcgoogle.protobuf.TimestampWhen the version was last modified, in UTC.
after_upload.version_info.files[]repeated FileThe files of this version. Each file_ver can be passed to DownloadFile_Begin.
after_upload.version_info.object_version_flagsOBJVERFLAGSBit flags that provide additional information on the object version.
after_upload.version_info.class_idint32The class ID of the version.
after_upload.version_info.version_guidstringThe GUID of this version.
after_upload.version_info.base_properties[]repeated PropertyValueNot filled by the object read methods; read the property values with GetObjectVersionAndPropertiesOfMultipleObjects or GetProperties.
after_upload.version_info.primary_fileFileIDFile ID of the primary file of a multi-file object, if the object is a multi-file object.
after_upload.object_infoObjectLevelInfoObject-level information.
after_upload.object_info.obj_idObjIDThe object type and ID of the object.
after_upload.object_info.external_id_statusExtIDStatusThe status of this object's external ID.Values: EXT_IDSTATUS_UNKNOWN (0), EXT_IDSTATUS_EXTERNAL (1), EXT_IDSTATUS_INTERNAL (2), EXT_IDSTATUS_DISCARDED (3), EXT_IDSTATUS_NOT_AVAILABLE (4), EXT_IDSTATUS_EXTERNAL_REDUCED (5).
after_upload.object_info.external_idstringThe external ID (display ID) of this object. unset means that the external ID is the same as the internal ID.
after_upload.object_info.checked_out_versionObjVerVersionThe version that is checked out. Version number 0 if the object is not checked out.
after_upload.object_info.checked_out_to_user_idint32The ID of the user who has the object checked out.
after_upload.object_info.checked_out_to_user_namestringThe user name of the user who has the object checked out.
after_upload.object_info.checked_out_to_host_namestringThe host name of the computer to which the object was checked out.
after_upload.object_info.checked_out_at_utcgoogle.protobuf.TimestampThe timestamp of the moment the object was checked out.
after_upload.object_info.checked_in_versionObjVerVersionThe latest checked-in version.
after_upload.object_info.created_at_utcgoogle.protobuf.TimestampThe time when the object was created (same as the PROPERTYDEF_CREATED propertyvalue).
after_upload.object_info.accessed_by_me_utcgoogle.protobuf.TimestampAccessed by me timestamp. Parallel operations may cause slight inconsistencies in the returned timestamp in rare cases and the precise value shouldn't be relied upon. The observed timestamp may even roll back.
after_upload.object_info.guidstringThe object GUID, in braces. The same value as GetObjectGUID returns.
after_upload.object_info.optionsITEMFLAGSBit flags that provide additional information on the object (e.g. is the object deleted or a stub).
after_upload.object_info.original_vault_guidstringThe GUID of the vault in which the object was originally created.
after_upload.object_info.original_vault_obj_idObjIDThe original objid in the vault in which the object was originally created.
after_upload.object_info.associated_view_idItemIDIdentifies the view associated with this object if any.
after_upload.object_info.external_repository_icon_idstringIf not null, identifies the icon of the object. Currently applicable only to unmanaged objects.
after_upload.object_info.primary_view_idItemIDIf not null, identifies the primary view of the object that is also the default opening location of the object. Currently applicable only to unmanaged objects.
after_upload.object_info.capabilitiesOBJECTCAPABILITYFLAGSBit flags that provide information on the object capabilities.
updated_objects[]repeated ObjectVersionExInformation about objects that were also updated during the operation. (represented by ObjectVersionEx structs.)
updated_objects[].version_infoObjectVersionObject Version information.
updated_objects[].version_info.versionObjVerVersionThe version number, as a specific version.
updated_objects[].version_info.display_versionstringThe version label to show, if it differs from the version number; empty otherwise.
updated_objects[].version_info.titlestringThe title (name) of the object in this version.
updated_objects[].version_info.is_single_file_objectboolTrue if the object is a single-file document, which has exactly one file.
updated_objects[].version_info.has_relationships_from_thisboolNote: this field is deprecated. True if relationships from this object version to one or more documents exist.
updated_objects[].version_info.has_relationships_to_thisboolNote: this field is deprecated. True if relationships from one or more documents to this object version exist.
updated_objects[].version_info.has_assignmentsboolTrue if relationships from one or more assignments to this object version exist.
updated_objects[].version_info.last_modified_at_utcgoogle.protobuf.TimestampWhen the version was last modified, in UTC.
updated_objects[].version_info.files[]repeated FileThe files of this version. Each file_ver can be passed to DownloadFile_Begin.
updated_objects[].version_info.object_version_flagsOBJVERFLAGSBit flags that provide additional information on the object version.
updated_objects[].version_info.class_idint32The class ID of the version.
updated_objects[].version_info.version_guidstringThe GUID of this version.
updated_objects[].version_info.base_properties[]repeated PropertyValueNot filled by the object read methods; read the property values with GetObjectVersionAndPropertiesOfMultipleObjects or GetProperties.
updated_objects[].version_info.primary_fileFileIDFile ID of the primary file of a multi-file object, if the object is a multi-file object.
updated_objects[].object_infoObjectLevelInfoObject-level information.
updated_objects[].object_info.obj_idObjIDThe object type and ID of the object.
updated_objects[].object_info.external_id_statusExtIDStatusThe status of this object's external ID.Values: EXT_IDSTATUS_UNKNOWN (0), EXT_IDSTATUS_EXTERNAL (1), EXT_IDSTATUS_INTERNAL (2), EXT_IDSTATUS_DISCARDED (3), EXT_IDSTATUS_NOT_AVAILABLE (4), EXT_IDSTATUS_EXTERNAL_REDUCED (5).
updated_objects[].object_info.external_idstringThe external ID (display ID) of this object. unset means that the external ID is the same as the internal ID.
updated_objects[].object_info.checked_out_versionObjVerVersionThe version that is checked out. Version number 0 if the object is not checked out.
updated_objects[].object_info.checked_out_to_user_idint32The ID of the user who has the object checked out.
updated_objects[].object_info.checked_out_to_user_namestringThe user name of the user who has the object checked out.
updated_objects[].object_info.checked_out_to_host_namestringThe host name of the computer to which the object was checked out.
updated_objects[].object_info.checked_out_at_utcgoogle.protobuf.TimestampThe timestamp of the moment the object was checked out.
updated_objects[].object_info.checked_in_versionObjVerVersionThe latest checked-in version.
updated_objects[].object_info.created_at_utcgoogle.protobuf.TimestampThe time when the object was created (same as the PROPERTYDEF_CREATED propertyvalue).
updated_objects[].object_info.accessed_by_me_utcgoogle.protobuf.TimestampAccessed by me timestamp. Parallel operations may cause slight inconsistencies in the returned timestamp in rare cases and the precise value shouldn't be relied upon. The observed timestamp may even roll back.
updated_objects[].object_info.guidstringThe object GUID, in braces. The same value as GetObjectGUID returns.
updated_objects[].object_info.optionsITEMFLAGSBit flags that provide additional information on the object (e.g. is the object deleted or a stub).
updated_objects[].object_info.original_vault_guidstringThe GUID of the vault in which the object was originally created.
updated_objects[].object_info.original_vault_obj_idObjIDThe original objid in the vault in which the object was originally created.
updated_objects[].object_info.associated_view_idItemIDIdentifies the view associated with this object if any.
updated_objects[].object_info.external_repository_icon_idstringIf not null, identifies the icon of the object. Currently applicable only to unmanaged objects.
updated_objects[].object_info.primary_view_idItemIDIf not null, identifies the primary view of the object that is also the default opening location of the object. Currently applicable only to unmanaged objects.
updated_objects[].object_info.capabilitiesOBJECTCAPABILITYFLAGSBit flags that provide information on the object capabilities.