# camera.uploadFile

The app issues this command to the camera to initiate upload of an image or
video directly from the camera to a server. The camera should use the included
parameters to form an HTTP POST request. The file to be uploaded is specified by
`fileUrl` and it should be uploaded to `uploadUrl` with the correct
authorization specified by `accessToken`. **This command was added in API level
2.1 and is relevant to
[Direct Upload](https://developers.google.com/streetview/open-spherical-camera/guides/direct-upload)**

One could do this from a computer command line as:

    curl -X post -H "Authorization: Bearer accessToken" -T fileUrl uploadUrl

## Parameters

- `fileUrl:` The URL of the file to be uploaded to the server.
- `uploadUrl:` A string representing where to upload the file.
- `accessToken:` A token including the authentication information for the upload. It is obtained by the app and sent to the camera.

## Results

- This command returns no result.

## Errors

- `missingParameter:` Some parameter, for example, `fileUrl` is missing.
- `invalidParameterName:` One or more input parameter names are unrecognized.
- `invalidParameterValue:` Input parameter names are recognized but one or more passed value are invalid. For example, the file specified by the `fileUrl` does not exist.
- `uploadError:` Camera failed to upload.

| Command I/O |   |
|---|---|
| **Command Input** | ``` { "parameters": { "fileUrl": "URL of the file.", "uploadUrl": "A string representing where to upload the file.", "accessToken": "A token containing the authentication information." } } ``` |
| **Command Output** | ``` none ``` |
| **Command Output (Error)** | ``` { "error": { "code": "uploadError", "message": "Camera failed to upload the file." } } ``` |