Ошибка «AttributeError: объект s3 не имеет атрибута load_string» возникает при попытке вызвать метод load_string() для объекта, который не имеет этого атрибута.
|
1 2 3 4 5 |
import boto3 s3 = boto3.client('s3') s3.load_string('your-bucket', 'your-object') |
Выход
|
1 |
AttributeError: s3 object has no attribute load_string |
В этом примере кода мы импортируем пакет bot03 для подключения нашего приложения к службе хранения Amazon S3.
S3 — это клиентский объект службы Amazon, но он не имеет метода load_string().
Вот два решения для исправления ошибки.
- Использование метода S3.download_fileobj()
- Использование метода S3.get_object()
1 Использование метода s3.download_fileobj().
Метод download_fileobj() загружает объект из S3 в файлоподобный объект в двоичном режиме.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import boto3 from io import BytesIO s3 = boto3.client('s3') data = BytesIO() s3.download_fileobj('your-bucket', 'your-object', data) data.seek(0) contents = data.read() print(contents) |
В этом примере кода мы сначала импортировали два пакета: boto3, BytesIO.
- На следующем шаге, чтобы подключить наше приложение к Amazon S3, используйте метод boto3.client().
- Затем мы должны создать объект BytesIO для хранения данных объекта.
- Используйте метод download_fileobj() для сохранения данных объекта в объекте BytesIO.
- Используя метод .seek(), мы можем перемотать объект BytesIO, чтобы прочитать его содержимое.
- Наконец, мы можем прочитать содержимое с помощью метода .read() и распечатать его в консоли с помощью метода print().
2 Использование метода s3.get_fileobj().
Функция s3.get_object() извлекает объекты из Amazon S3.
|
1 2 3 4 5 6 7 8 |
import boto3 s3 = boto3.client('s3') response = s3.get_object(Bucket='your-bucket', Key='your-object') contents = response['Body'].read() print(contents) |
Во втором решении мы использовали метод s3.get_object() из библиотеки boto3.
Заключение
Метод load_string() не существует в объектах библиотеки boto3.
Чтобы получить и прочитать контент из сервиса Amazon S3 на Python, используйте метод download_fileobj() или метод get_obj().
