     - parameter progress:          The closure that is called periodically during the data transfer.
     - parameter completionHandler: The closure to be called once the request is prepared, holding either the request object or an error
     */
+    @discardableResult
     open func signedUploadLarge<T>(url: URL, params: CLDUploadRequestParams = CLDUploadRequestParams(), preprocessChain: CLDPreprocessChain<T>, chunkSize: Int = defaultChunkSize, progress: ((Progress) -> Void)? = nil,
                                 completionHandler: CLDUploadCompletionHandler? = nil) -> CLDUploadRequest{
         params.setSigned(true)

   - parameter progress:          The closure that is called periodically during the data transfer.
   - parameter completionHandler: The closure to be called once the request is prepared, holding either the request object or an error
   */
    open func uploadLarge(url: URL, uploadPreset: String, params: CLDUploadRequestParams = CLDUploadRequestParams(), chunkSize: Int = defaultChunkSize, progress: ((Progress) -> Void)? = nil,
                          completionHandler: CLDUploadCompletionHandler? = nil) -> CLDUploadRequest{
        params.setSigned(false)

     - parameter progress:          The closure that is called periodically during the data transfer.
     - parameter completionHandler: The closure to be called once the request is prepared, holding either the request object or an error
     */
    @discardableResult
    open func signedUploadLarge(url: URL, params: CLDUploadRequestParams = CLDUploadRequestParams(), chunkSize: Int = defaultChunkSize, progress: ((Progress) -> Void)? = nil,
                                completionHandler: CLDUploadCompletionHandler? = nil) -> CLDUploadRequest{
        params.setSigned(true)
