func storageUploadCombinedExample()

in storage/StorageReferenceSwift/ViewController.swift [268:326]


  func storageUploadCombinedExample() {
    let storageRef = Storage.storage().reference()

    // [START firstorage_upload_combined]
    // Local file you want to upload
    let localFile = URL(string: "path/to/image")!

    // Create the file metadata
    let metadata = StorageMetadata()
    metadata.contentType = "image/jpeg"

    // Upload file and metadata to the object 'images/mountains.jpg'
    let uploadTask = storageRef.putFile(from: localFile, metadata: metadata)

    // Listen for state changes, errors, and completion of the upload.
    uploadTask.observe(.resume) { snapshot in
      // Upload resumed, also fires when the upload starts
    }

    uploadTask.observe(.pause) { snapshot in
      // Upload paused
    }

    uploadTask.observe(.progress) { snapshot in
      // Upload reported progress
      let percentComplete = 100.0 * Double(snapshot.progress!.completedUnitCount)
        / Double(snapshot.progress!.totalUnitCount)
    }

    uploadTask.observe(.success) { snapshot in
      // Upload completed successfully
    }

    uploadTask.observe(.failure) { snapshot in
      if let error = snapshot.error as? NSError {
        switch (StorageErrorCode(rawValue: error.code)!) {
        case .objectNotFound:
          // File doesn't exist
          break
        case .unauthorized:
          // User doesn't have permission to access file
          break
        case .cancelled:
          // User canceled the upload
          break

        /* ... */

        case .unknown:
          // Unknown error occurred, inspect the server response
          break
        default:
          // A separate error occurred. This is a good place to retry the upload.
          break
        }
      }
    }
    // [END firstorage_upload_combined]
  }