загрузка файла из S3 с использованием ошибки ключа boto3 - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь загрузить файл joblib из S3, но получаю ошибки с форматом ключа.

Это мой путь S3 к файлу:

"s3://v1/v2/v3/v4/model.joblib"

Это мой код :

import boto3
bucketname = "v1" 
key = "v2/v3/v4"
filename = "model.joblib"
s3 = boto3.resource('s3')
obj = s3.Object(bucketname, key)
body = obj.get()['label_model.joblib'].read()

в конечном итоге я хочу быть в состоянии сделать:

from joblib import load

model = load("model.joblib")

Ошибка, которую я получил:

NoSuchKey: An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.

1 Ответ

0 голосов
/ 29 января 2020

Вы пытаетесь получить доступ к файлу без имени файла.

Ваш код:

import boto3
bucketname = "v1" 
key = "v2/v3/v4"
filename = "model.joblib"
s3 = boto3.resource('s3')
obj = s3.Object(bucketname, key)
body = obj.get()['label_model.joblib'].read()

Но вам нужно добавить имя файла в переменную key. Вот пример загрузки файла с s3:

bucketname = "v1"
key = "v2/v3/v4"
filename = "model.joblib"

s3 = boto3.resource('s3')
bucket = s3.Bucket(bucketname)

with open('filename', 'wb') as f:
    bucket.download_fileobj(f'{key}/{filename}', f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...