Прочитать файл h5, используя AWS boto3 - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь прочитать файл h5 из AWS S3, используя boto3.

client = boto3.client('s3',key ='key')
result = client.get_object(Bucket='bucket', Key='file')
with h5py.File(result['Body'], 'r') as f:
    data = f

TypeError: ожидаемый объект str, bytes или os.PathLike, а не StreamingBody

Есть идеи?

h5py версия 2.10, версия boto3 1.7.58

Тот же вопрос был здесь , но ответа нет ...

1 Ответ

1 голос
/ 25 апреля 2020

Команда h5py.File() ожидает путь к локальному файлу на диске . Однако вы передаете ему данные в память.

Вы можете загрузить файл с помощью:

import boto3

s3_client = boto3.client('s3')

s3_client.download_file('bucket', 'key', 'filename')

with h5py.File('filename', 'r') as f:
    data = f
...