Я использую Boto в Python для загрузки файла из своего ведра S3.S3Transfer download_file ошибки, но client.download_file отлично работает
Это прекрасно работает:
import boto3
s3_client = boto3.resource('s3')
s3_client.meta.client.download_file('mybucket', 'db/file.00.txt', '/work/testing/file.00.txt')
Я хотел бы использовать S3Transfer автоматически использовать многочастный, как я буду работать с некоторыми довольно массивными файлами (900 МБ +).
Однако, когда я пытаюсь следующее, он не:
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')
Я получаю ошибку следующим образом:
Traceback (most recent call last):
File "/work/sparkrun/CommonBlast.py", line 126, in <module>
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'
Параметры для метода download_file идентичны. Я использую последнюю версию boto (1.2.3). Что происходит?
Ах, это было бы почему. Отлично работает сейчас, спасибо. Думаю, это научит меня уделять более пристальное внимание. –