S3Transfer download_file errors out, but client.download_file works fine
<p>I'm using Boto in Python to download a file from my S3 bucket.</p>

<p>This works fine:</p>

<pre><code>import boto3
s3_client = boto3.resource('s3')
s3_client.meta.client.download_file('mybucket', 'db/file.00.txt', '/work/testing/file.00.txt')
</code></pre>

<p>I would like to use S3Transfer to automatically use multipart, as I will be working with some pretty massive files (900 MB+).</p>

<p>However, when I try the following, it fails:</p>

<pre><code>import boto3
from boto3.s3.transfer import S3Transfer
s3_client = boto3.resource('s3')
transfer = S3Transfer(s3_client)
transfer.download_file('mybucket', 'db/file.00.txt', '/work/testing/file.00.txt')
</code></pre>

<p>The error I get is as follows:</p>

<pre><code>Traceback (most recent call last):
  File "/work/sparkrun/CommonBlast.py", line 126, in &lt;module&gt;
    transfer.download_file('mybucket', 'db/file.00.txt', '/work/testing/file.00.txt')
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 658, in download_file
    object_size = self._object_size(bucket, key, extra_args)
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 723, in _object_size
    return self._client.head_object(
AttributeError: 's3.ServiceResource' object has no attribute 'head_object'
</code></pre>

<p>The parameters to the download_file method are identical. I'm using the latest version of boto (1.2.3). What is going on?</p>