Squeak.ru - шаблоны программирования

Список объектов корзины S3 с точкой доступа с помощью Boto3

Я пытаюсь использовать функцию list_objects_v2 клиента API Python3 Boto3 S3 для вывода списка объектов из точки доступа S3.

Образец кода:

import boto3
import botocore

access_point_arn = "arn:aws:s3:region:account-id:accesspoint/resource"
client = boto3.client('s3')
response = client.list_objects_v2(Bucket=access_point_arn)

Как-то получить ошибку ниже:

botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid bucket name "arn:aws:s3:region:account-id:accesspoint/resource": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$"

На основе документации: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html, я должен иметь возможность передать точку доступа функции list_objects_v2 в качестве имени сегмента. Как ни странно, эта функция работает локально на моем ноутбуке с Windows 10. Тот же код Python3.6 с теми же версиями пакетов Boto3 и Botocore вызывает эту ошибку в задании AWS Glue Python Shell. Я также убедился, что к роли Glue прикреплены политики S3 Full Access и Glue Service.

Буду признателен, если кто-нибудь сможет пролить свет на это.


  • Попробуйте не указывать точку доступа в коде при запуске на Glue. 29.08.2020
  • Точки доступа относительно новые. Интересно, использует ли Glue старую версию boto, которая их не поддерживает? 29.08.2020
  • @JohnRotenstein Я уже импортировал файлы boto3 и botocore wheel как файлы классов Glue Python, поэтому убедитесь, что они соответствуют моим локальным версиям. 29.08.2020
  • @Asdfg Не совсем то. Вы хотите не указывать kwarg Bucket для функции list_objects_v2? 29.08.2020
  • Просто укажите имя корзины без точки доступа. Like Bucket = «MyAwesomeBucket» 29.08.2020
  • @JohnRotenstein Я думаю, вы правы. Я сделал версию boto print boto3.__version__, текущая версия boto3 для задания оболочки Glue Python - 1.9.203, что дает мне ту же ошибку, если я попробую эту версию на моем локальном компьютере. Указанный мной файл wheel для boto3 версии 1.13.21 не перезаписывал родную версию boto3, возможно, что для этого пакета на Glue worker произошла ошибка кеширования. 29.08.2020
  • @JohnRotenstein Добавлен еще один поток, касающийся версии boto3: stackoverflow.com/questions/63642744/ 29.08.2020

Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...