Provides access to various APIs related to file upload features.

Class members

Methods

  • addToQueue(files: FileModel[]): FileModel[]
    Adds files to the uploading queue to be uploaded

    • files: FileModel[] - One or more separate parameters or an array of files to queue
    • Returns FileModel[] - Array of files that were not blocked from upload by the ignore list
  • cancelUpload(files: FileModel[])
    Cancels uploading of files. If the file is smaller than 1 MB the file will be uploaded and then the node deleted to prevent having files that were aborted but still uploaded.

    • files: FileModel[] - One or more separate parameters or an array of files specifying uploads to cancel
  • clearCache()

  • clearQueue()
    Clears the upload queue

  • getQueue(): FileModel[]
    Gets the file Queue

    • Returns FileModel[] - Array of files that form the queue
  • getThreadsCount(): number
    Returns the number of concurrent threads for uploading.

    • Returns number - Number of concurrent threads (default 1)
  • getUploadPromise(file: FileModel): any
    Gets an upload promise for a file.

    • file: FileModel - The target file
    • Returns any - Promise that is resolved if the upload is successful or error otherwise
  • isUploading(): boolean
    Checks whether the service still has files uploading or awaiting upload.

    • Returns boolean - True if files in the queue are still uploading, false otherwise
  • uploadFilesInTheQueue(successEmitter?: EventEmitter<any>, errorEmitter?: EventEmitter<any>)
    Finds all the files in the queue that are not yet uploaded and uploads them into the directory folder.

    • successEmitter: EventEmitter<any> - (Optional) Emitter to invoke on file success status change
    • errorEmitter: EventEmitter<any> - (Optional) Emitter to invoke on file error status change

Events

NameTypeDescription
queueChangedFileModel[]Emitted when the file queue changes.
fileUploadFileUploadEventEmitted when a File model changes its state.
fileUploadStartingFileUploadEventEmitted when an upload starts.
fileUploadCancelledFileUploadEventEmitted when an upload gets cancelled by the user.
fileUploadProgressFileUploadEventEmitted during the file upload process and contains the current progress for a particular File model.
fileUploadAbortedFileUploadEventEmitted when a file upload gets aborted by the server.
fileUploadErrorFileUploadEventEmitted when an error occurs during a file upload.
fileUploadCompleteFileUploadCompleteEventEmitted when a file upload is complete.
fileUploadDeleteFileUploadDeleteEventEmitted when an uploaded file is removed from server.
fileDeletedstringThis can be invoked when a file is deleted from an external source to upload the file dialog status.

Details

Ignore list configuration

You can add an ignore list for files that you don't want to be uploaded on your CS. The configuration of this service is saved in the app.config.json file (see the App Config service for more information).

The example below shows how to filter out the : '.git', '.DS_Store' and 'desktop.ini' files. Each element of the ignore list is a glob pattern string, so you could exclude all the .txt files, for example, by adding a *.txt pattern to the list. You can also specify some more options about how to perform the check via the match-options parameter.

In the example below, we have added the nocase option (ie, ignore case when performing the glob match), so *.TXT will also match .txt, etc. For more information about the options available please check the documentation for the minimatch node module.

app.config.json

{
    "ecmHost": "http://localhost:3000/ecm",
    "bpmHost": "http://localhost:3000/bpm",
    "application": {
        "name": "Alfresco"
    },
    "files": {
          "excluded": [".DS_Store", "desktop.ini", ".git", "*.txt"],
          "match-options": {
            "nocase": true
          }
    }
}

From version 3.8.0 it is also possible to filter out the folders:

app.config.json

{
    "ecmHost": "http://localhost:3000/ecm",
    "bpmHost": "http://localhost:3000/bpm",
    "application": {
        "name": "Alfresco"
    },
    "folders": {
          "excluded": [".git"],
          "match-options": {
            "nocase": true
          }
    }
}

In this way all the files present in the .git folder won't be uploaded.

Please note that the filtering options available for the folders is the same as the one for the files.

Toggling Versioning Support

It is also possible to provide the versioningEnabled value as part of the FileUploadOptions when using upload service from the code.

Note: When creating a new node using multipart/form-data by default versioning is enabled and set to MAJOR Version. Since Alfresco 6.2.3 versioningEnabled flag was introduced offering better control over the new node Versioning.

Concurrent Uploads

By default, the Upload Service processes one file at a time. You can increase the number of concurrent threads by changing the upload.threads configuration parameter:

app.config.json

{
    "upload": {
        "threads": 2
    }
}

© 2023 Alfresco Software, Inc. All Rights Reserved.