title: AWSS3TransferUtility for iOS not working (AWSS3TransferManager is though)
body: <p>I was previously using AWSS3TransferManager to upload images to my s3 bucket and everything was working perfectly, but I decided that background uploads were necessary so decided to switch over to AWSS3TransferUtilityManager. I've implemented the code exactly as shown in the guide but the upload never starts:</p>
  
  <p>Instantiate AWS Code (In app delegate - didFinishLaunching...):</p>
  
  <pre><code>    //AWS SDK
      let credentialsProvider = AWSCognitoCredentialsProvider(regionType: AWSRegionType.USEast1, identityPoolId: "my_pool_id")        
      let configuration = AWSServiceConfiguration(region: AWSRegionType.USWest1, credentialsProvider: credentialsProvider)
      AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
  </code></pre>
  
  <p>Set up temporary directory to save image to for upload:</p>
  
  <pre><code>        //Set up and potentially clear temporary image directory before uploading
          let path = (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("image.png")
          let thumbnailUrl = NSURL(fileURLWithPath: path)
  
          var error: NSError? = nil
          if NSFileManager.defaultManager().fileExistsAtPath(thumbnailUrl.path!) {
              do {
                  try NSFileManager.defaultManager().removeItemAtPath(thumbnailUrl.path!)
                  print("Successfully cleared temporary directory")
  
              } catch let fileError as NSError {
                  error = fileError
                  print("Error clearing temporary image directory")
              }
          }
  </code></pre>
  
  <p>Set up Transfer Utility Expression:</p>
  
  <pre><code>        let expression:AWSS3TransferUtilityUploadExpression = AWSS3TransferUtilityUploadExpression()
  </code></pre>
  
  <p>Progress update code:</p>
  
  <pre><code>        //-------------------------
          //Progress Bar Update
          expression.progressBlock = { (task: AWSS3TransferUtilityTask,progress: NSProgress) -&gt; Void in
              dispatch_async(dispatch_get_main_queue(),{
  
                  print("Image upload progress update: \(progress.fractionCompleted)")
  
              })
          }
  </code></pre>
  
  <p>Mark ACL as public</p>
  
  <pre><code>        //Mark ACL as public
          expression.setValue("public-read", forRequestParameter: "x-amz-acl")
          expression.setValue("public-read", forRequestHeader: "x-amz-acl" )
  </code></pre>
  
  <p>Completion handler code: </p>
  
  <pre><code>        //-------------------------
          //Completion handler
          self.imageUploadCompletionHandler = { (task:AWSS3TransferUtilityUploadTask, error:NSError?) -&gt; Void in
  
              print("Image upload complete")
  
              dispatch_async(dispatch_get_main_queue(), {
  
                  if(error != nil){
                      print("Failure uploading thumbnail")
  
                  }else{
                      print("Success uploading thumbnail")
                  }
  
              })
          }
  </code></pre>
  
  <p>Upload:</p>
  
  <pre><code>        //--------------------------
          //Upload Thumbnail
          AWSS3TransferUtility.defaultS3TransferUtility().uploadFile(thumbnailUrl, bucket: "exampleBucket", key: "exampleKey", contentType: "image/jpeg", expression: expression, completionHander: self.imageUploadCompletionHandler).continueWithBlock({ (task:AWSTask) -&gt; AnyObject? in
  
              if(task.error != nil){
                  print("Error uploading thumbnail: \(task.error)")
                  s3RequestSuccessful = false
  
              }
  
              if(task.exception != nil){
                  print("Exception uploading thumbnail: \(task.exception)")
                  s3RequestSuccessful = false
  
              }
  
              if(task.result != nil){
                  print("Starting upload...")
              }
              return nil
          })
  </code></pre>
  
  <p>So my bucket is in US-West-1 and identity pool is in US-East-1 and I know there have been some posts about making sure the bucket and identity pool are in the same region but that should be taken care of with the following line which I've implemented:</p>
  
  <pre><code> let configuration = AWSServiceConfiguration(region: AWSRegionType.USWest1, credentialsProvider: credentialsProvider)
  </code></pre>
  
  <p>The behavior I get is that the completion handler and progress block code are never called. What am I missing here? Once again, uploads were/are working perfectly to the same bucket using the AWSS3TransferManager</p>