upload method

Future<TransferTask> upload(
  1. String bucket,
  2. String cosPath, {
  3. String? region,
  4. String? filePath,
  5. Uint8List? byteArr,
  6. String? uploadId,
  7. String? stroageClass,
  8. int? trafficLimit,
  9. String? callbackParam,
  10. Map<String, String>? customHeaders,
  11. List<String?>? noSignHeaders,
  12. ResultListener? resultListener,
  13. StateCallBack? stateCallback,
  14. ProgressCallBack? progressCallBack,
  15. InitMultipleUploadCallback? initMultipleUploadCallback,
})

Implementation

Future<TransferTask> upload(String bucket, String cosPath,
    {String? region,
    String? filePath,
    Uint8List? byteArr,
    String? uploadId,
    String? stroageClass,
    int? trafficLimit,
    String? callbackParam,
    Map<String, String>? customHeaders,
    List<String?>? noSignHeaders,
    ResultListener? resultListener,
    StateCallBack? stateCallback,
    ProgressCallBack? progressCallBack,
    InitMultipleUploadCallback? initMultipleUploadCallback }) async {
  if (filePath == null && byteArr == null) {
    throw IllegalArgumentException("filePath or byteArr cannot be empty");
  }

  int? resultCallbackKey = _addResultListener(resultListener);
  int? stateCallbackKey = _addStateCallBack(stateCallback);
  int? progressCallbackKey = _addProgressCallBack(progressCallBack);
  int? initMultipleUploadCallbackKey = _addInitMultipleUploadCallback(initMultipleUploadCallback);

  String taskId = await _transferApi.upload(
      _transferKey,
      bucket,
      cosPath,
      region,
      filePath,
      byteArr,
      uploadId,
      stroageClass,
      trafficLimit,
      callbackParam,
      customHeaders,
      noSignHeaders,
      resultCallbackKey,
      stateCallbackKey,
      progressCallbackKey,
      initMultipleUploadCallbackKey);

  return TransferTask(_transferKey, taskId, _transferApi);
}