Skip to content

File Upload

The file upload operation delivers a file in the Backendless file storage of your application. The return value of the upload operation is the public file URL. Backendless uses the following rules when assigning a URL to the uploaded file:

If no custom domains are mapped to the application, the URL has the following structure:
North American cluster:<application id>/<REST-API-key>/files/<path>/<file name>

European Union cluster:<application id>/<REST-API-key>/files/<path>/<file name>


Argument                Description
<application id> ID of the application which can be obtained from the Manage > App Settings screen of the Backendless Console
<REST-API-key> REST API key of your application. You can get the value from the Manage > App Settings section of the Backendless Console. Note that if the file is created from Cloud Code (JS, Java or Codeless), the API key in the file path will be the CodeRunner API Key.
<path> directory path where the file is saved
<file name> name of the file

If a custom domain is assigned to the application and the domain is selected for File Repo access, Backendless will use the custom domain to create a URL for the uploaded file. The File Repo access configuration is available in Backendless Console (Manage > App Settings > Custom Domains):
When a custom domain is assigned to handle files in your Backendless backend, the structure of the URL is as follows:<path>/<file name>

Note that your subdomain cannot be assigned to handle File Repo access. This means that Backendless server will never assign that subdomain to the files in your Backendless file repo.

The URL assigned to a file and returned as a result of the upload operation accounts for any security permissions assigned to the file (or the folder it is located in).

Upload a file to a remote path in the Backendless storage.

public void BackendlessAPI.Backendless.FilesUpload( FileStream fileStream, 
                                                    string remotePath, 
                                                    AsyncCallback&ltBackendlessFile callback );

Upload a file to a remote path and receive updates for the status of the upload. Updates are represented as percentages and are delivered via the uploadCallback argument.

public void BackendlessAPI.Backendless.FilesUpload( FileStream fileStream, 
                                                    string remotePath, 
                                                    UploadCallback uploadCallback, 
                                                    AsyncCallback&ltBackendlessFile callback )


Argument                Description
fileStream stream for a local file to upload to Backendless file storage. Remote file name is the same as the name of the local file.
remotePath path (without file name) in the remote Backendless file storage where the file should be saved.
uploadCallback receives updates through the upload process. Updates expressed as percentage of file uploaded to the server.
callback a responder object which receives a callback when the method successfully uploads the file or if an error occurs.

Return Value (delivered via AsyncCallback)

Argument                Description
BackendlessFile a wrapper around the URL assigned to the uploaded file.


AsyncCallback<BackendlessAPI.File.BackendlessFile> callback = new AsyncCallback<BackendlessAPI.File.BackendlessFile>(
        result =>
          System.Console.WriteLine( "File uploaded. URL - " + result.FileURL );

        fault =>
          System.Console.WriteLine( "Error - " + fault );
        } );

FileStream fs = new FileStream( "test.txt", FileMode.Open, FileAccess.Read );
BackendlessAPI.Backendless.Files.Upload( fs, "myfiles", callback );