Я тестирую пропускную способность записи в 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')
Заранее спасибо на ваше рассмотрение и ответ.