Как создать Python файловый объект из итератора - PullRequest
0 голосов
/ 13 июля 2020

Я тестирую пропускную способность записи в S3 из задания оболочки python glue, используя функцию upload_fileobj из клиента boto3. Входные данные этой функции:

Fileobj (объект, подобный файлу) - объект, подобный файлу, для загрузки. Как минимум, он должен реализовывать метод чтения и должен возвращать байты.

Чтобы тест изолировал только пропускную способность, а не возможности памяти или процессора, я считаю, что лучший способ Использовать upload_file_object означало бы передать iterator, который производит N байт значения 0.

В python, как можно создать «объект, подобный файлу» с помощью итератора ?

Я ищу что-то в форме

from itertools import repeat

number_of_bytes = 1024 * 1024

zero_iterator = repeat(b'0', number_of_bytes)

file_like_object = something(zero_iterator) # fill in 'something'

Что затем будет передано в boto3 для записи

session.client('s3').upload_fileobj(file_like_object, Bucket='my_bucket')

Заранее спасибо на ваше рассмотрение и ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...