Поскольку существует возможность установить аргумент --expected-size
в aws s3 cp , чтобы обеспечить успешную загрузку файлов / данных размером более 5 ГБ, как это можно установить в его Python-версии: boto3
upload_fileobj ?
Я пытаюсь загрузить резервную копию базы данных как поток данных на S3, не сохраняя ее на диск, но в середине процесса происходит сбой из-за InvalidArgument: Part number must be an integer between 1 and 10000, inclusive
.
Я предполагаю, что это потому, что поток данных не доступен для поиска, поэтому вам нужно явно указать ожидаемый размер данных.
Пример CLI AWS:
innobackupex --stream=xbstream --compress /backup \
| aws s3 cp - s3://backups/backup2018112 --expected-size=1099511627776
Пример Boto3:
import subprocess
import boto3
innobackupexProc = subprocess.Popen([
'innobackupex',
'--stream=xbstream',
'--compress',
'/backup'
], stdout=subprocess.PIPE)
s3 = boto3.client('s3')
with innobackupexProc.stdout as dataStream:
s3.upload_fileobj(dataStream, 'backups', 'backup2018112')