Manage Applications

    Commit upload session

    post
    https://upload.box.com/api/2.0
    /files/upload_sessions/:upload_session_id/commit

    Close an upload session and create a file from the uploaded chunks.

    Request

    application/json

    Path Parameters

    stringin pathrequired
    D5E3F7A

    The ID of the upload session.

    Request Body

    Upload Part (Mini) arrayin bodyrequired

    Request Headers

    stringin headerrequired
    sha=fpRyg5eVQletdZqEKaFlqwBXJzM=

    The RFC3230 message digest of the whole file.

    Only SHA-1 is supported. The SHA-1 digest must be Base64 encoded. The format of this header is as sha=BASE64_ENCODED_DIGEST.

    stringin headeroptional
    1

    Ensures this item hasn't recently changed before making changes.

    Pass in the item's last observed etag value into this header and the endpoint will fail with a 412 Precondition Failed if it has changed since.

    stringin headeroptional
    1

    Ensures an item is only returned if it has changed.

    Pass in the item's last observed etag value into this header and the endpoint will fail with a 304 Not Modified if the item has not changed since.

    Response

    application/jsonFiles

    Returns the file object in a list.

    none

    Returns when all chunks have been uploaded but not yet processed.

    Inspect the upload session to get more information about the progress of processing the chunks, then retry committing the file when all chunks have processed.

    application/jsonClient Error

    Returns an error if there is already a file with the same name in the target folder.

    application/jsonClient Error

    Returns an error if the If-Match or If-None-Match conditions fail.

    You can now try out some of our APIs live, right here in the documentation.
    Log In

    Request Example

    cURL
    curl -X POST https://upload.box.com/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD/commit \
         -H "Authorization: Bearer <ACCESS_TOKEN>" \
         -H "Digest: sha=fpRyg5eVQletdZqEKaFlqwBXJzM=" \
         -H "Content-Type: application/json" \
         -d '{
           "parts": [
             {
               "part_id": "BFDF5379",
               "offset": 0,
               "size": 8388608
             },
    		     {
               "part_id": "E8A3ED8E",
               "offset": 8388608,
               "size": 1611392
             }
           ],
           "attributes": {
             "content_modified_at": "2017-04-08T00:58:08Z"
           }
         }'
    Python
    import hashlib
    
    sha1 = hashlib.sha1()
    # sha1 should have been updated with all the bytes of the file
    
    file_atributes = {
        'description': 'A file uploaded via Chunked Upload',
    }
    
    upload_session = client.upload_session('11493C07ED3EABB6E59874D3A1EF3581')
    uploaded_file = upload_session.commit(sha1.digest(), file_atributes=file_atributes)
    print('Successfully uploaded file {0} with description {1}'.format(uploaded_file.id, uploaded_file.description))
    Node
    // Finalize upload session 93D9A837B45F
    client.files.commitUploadSession(
    	'93D9A837B45F',
    	fileHash.digest('base64'),
    	{description: 'A file I uploaded in chunks!'},
    	callback
    );

    Response Example

    {
      "total_count": 1,
      "entries": [
        {
          "id": 12345,
          "etag": 1,
          "type": "file",
          "sequence_id": 3,
          "name": "Contract.pdf",
          "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
          "description": "Contract for Q1 renewal",
          "size": 629644,
          "path_collection": {
            "total_count": 1,
            "entries": [
              {
                "id": 12345,
                "etag": 1,
                "type": "folder",
                "sequence_id": 3,
                "name": "Contracts"
              }
            ]
          },
          "created_at": "2012-12-12T10:53:43-08:00",
          "modified_at": "2012-12-12T10:53:43-08:00",
          "trashed_at": "2012-12-12T10:53:43-08:00",
          "purged_at": "2012-12-12T10:53:43-08:00",
          "content_created_at": "2012-12-12T10:53:43-08:00",
          "content_modified_at": "2012-12-12T10:53:43-08:00",
          "created_by": {
            "id": 11446498,
            "type": "user",
            "name": "Aaron Levie",
            "login": "ceo@example.com"
          },
          "modified_by": {
            "id": 11446498,
            "type": "user",
            "name": "Aaron Levie",
            "login": "ceo@example.com"
          },
          "owned_by": {
            "id": 11446498,
            "type": "user",
            "name": "Aaron Levie",
            "login": "ceo@example.com"
          },
          "shared_link": {
            "url": "https://www.box.com/s/vspke7y05sb214wjokpk",
            "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
            "vanity_url": "https://acme.app.box.com/v/my_url/",
            "access": "open",
            "effective_access": "company",
            "effective_permission": "can_download",
            "unshared_at": "2018-04-13T13:53:23-07:00",
            "is_password_enabled": true,
            "permissions": {
              "can_download": true,
              "can_preview": true
            },
            "download_count": 3,
            "preview_count": 3
          },
          "parent": {
            "id": 12345,
            "etag": 1,
            "type": "folder",
            "sequence_id": 3,
            "name": "Contracts"
          },
          "item_status": "active",
          "version_number": 1,
          "comment_count": 10,
          "permissions": {
            "can_delete": true,
            "can_download": true,
            "can_invite_collaborator": true,
            "can_rename": true,
            "can_set_share_access": true,
            "can_share": true,
            "can_annotate": true,
            "can_comment": true,
            "can_preview": true,
            "can_upload": true,
            "can_view_annotations_all": true,
            "can_view_annotations_self": true
          },
          "tags": [
            "approved"
          ],
          "lock": {
            "id": 11446498,
            "type": "lock",
            "created_by": {
              "id": 11446498,
              "type": "user",
              "name": "Aaron Levie",
              "login": "ceo@example.com"
            },
            "created_at": "2012-12-12T10:53:43-08:00",
            "expired_at": "2012-12-12T10:53:43-08:00",
            "is_download_prevented": true
          },
          "extension": "pdf",
          "is_package": true,
          "expiring_embed_link": {
            "access_token": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
            "expires_in": 3600,
            "token_type": "bearer",
            "restricted_to": [
              {
                "scope": "item_download",
                "object": {
                  "id": 12345,
                  "etag": 1,
                  "type": "file",
                  "sequence_id": 3,
                  "name": "Contract.pdf"
                }
              }
            ],
            "url": "https://cloud.app.box.com/preview/expiring_embed/..."
          },
          "watermark_info": {
            "is_watermarked": true
          },
          "allowed_invitee_roles": [
            "open"
          ],
          "is_externally_owned": true,
          "has_collaborations": true,
          "metadata": {
            "global": {
              "marketingCollateral": {
                "$canEdit": true,
                "$id": "01234500-12f1-1234-aa12-b1d234cb567e",
                "$parent": "folder_59449484661",
                "$scope": "enterprise_27335",
                "$template": "blueprintTemplate",
                "$type": "blueprintTemplate-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
                "$typeVersion": 2,
                "$version": 1
              }
            }
          },
          "expires_at": "2012-12-12T10:53:43-08:00",
          "representations": {
            "entries": [
              {
                "content": {
                  "url_template": "https://dl.boxcloud.com/api/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048/content/{+asset_path}?watermark_content=4567"
                },
                "info": {
                  "url": "https://api.box.com/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048"
                },
                "properties": {
                  "dimensions": "2048x2048",
                  "paged": true,
                  "thumb": true
                },
                "representation": "png",
                "status": {
                  "state": "success"
                }
              }
            ]
          }
        }
      ]
    }