title: AWS Lambda, saving S3 file to /tmp directory
body: <p>I want to copy a set of files over from S3, and put them in the /tmp directory while my lambda function is running, to use and manipulate the contents. The following code excerpt works fine on my PC (which is running windows)</p>
  
  <pre><code>s3 = boto3.resource('s3')
  BUCKET_NAME = 'car_sentiment'
  keys = ['automated.csv', 'connected_automated.csv', 'connected.csv', 
          'summary.csv']
  for KEY in keys: 
      try:
          local_file_name = 'tmp/'+KEY
          s3.Bucket(BUCKET_NAME).download_file(KEY, local_file_name)
      except botocore.exceptions.ClientError as e:
          if e.response['Error']['Code'] == "404":
              continue
          else:
              raise
  </code></pre>
  
  <p>However, when I try to run on AWS lambda, I get: </p>
  
  <pre><code>{
    "errorMessage": "[Errno 2] No such file or directory: 'tmp/automated.csv.4Bcd0bB9'",
    "errorType": "FileNotFoundError",
    "stackTrace": [
      [
        "/var/task/SentimentForAWS.py",
        28,
        "my_handler",
        "s3.Bucket(BUCKET_NAME).download_file(KEY, local_file_name)"
      ],
      [
        "/var/runtime/boto3/s3/inject.py",
        246,
        "bucket_download_file",
        "ExtraArgs=ExtraArgs, Callback=Callback, Config=Config)"
      ],
      [
        "/var/runtime/boto3/s3/inject.py",
        172,
        "download_file",
        "extra_args=ExtraArgs, callback=Callback)"
      ],
      [
        "/var/runtime/boto3/s3/transfer.py",
        307,
        "download_file",
        "future.result()"
      ],
      [
        "/var/runtime/s3transfer/futures.py",
        73,
        "result",
        "return self._coordinator.result()"
      ],
      [
        "/var/runtime/s3transfer/futures.py",
        233,
        "result",
        "raise self._exception"
      ],
      [
        "/var/runtime/s3transfer/tasks.py",
        126,
        "__call__",
        "return self._execute_main(kwargs)"
      ],
      [
        "/var/runtime/s3transfer/tasks.py",
        150,
        "_execute_main",
        "return_value = self._main(**kwargs)"
      ],
      [
        "/var/runtime/s3transfer/download.py",
        582,
        "_main",
        "fileobj.seek(offset)"
      ],
      [
        "/var/runtime/s3transfer/utils.py",
        335,
        "seek",
        "self._open_if_needed()"
      ],
      [
        "/var/runtime/s3transfer/utils.py",
        318,
        "_open_if_needed",
        "self._fileobj = self._open_function(self._filename, self._mode)"
      ],
      [
        "/var/runtime/s3transfer/utils.py",
        244,
        "open",
        "return open(filename, mode)"
      ]
    ]
  }
  </code></pre>
  
  <p>Why does it think the file name is <code>tmp/automated.csv.4Bcd0bB9</code> rather than just <code>tmp/automated.csv</code> and how do I fix it? Been pulling my hair out on this one, trying multiple approaches, some of which generate a similar error when running locally on my PC. Thanks!</p>