Boto3 помещает результаты объекта в botocore.exceptions.ReadTimeoutError - PullRequest
1 голос
/ 18 апреля 2019

Я установил два кластера ceph с радиошлюзом на узле для каждого из них. То, чего я пытаюсь добиться, - это перевести все объекты из группы «А» с конечной точкой в ​​моем кластере «1» в область «В», в которую можно попасть из другой конечной точки моего кластера «2». Это не имеет большого значения для моей проблемы, но, по крайней мере, вы понимаете контекст.

Я создал скрипт на python, используя модуль boto3. Сценарий действительно прост. Я просто хотел положить предмет в ведро.

Соответствующая часть написана ниже:

 s3 = boto3.resource('s3',
                      endpoint_url=credentials['endpoint_url'],
                      aws_access_key_id=credentials['access_key'],
                      aws_secret_access_key=credentials['secret_key'],
                      use_ssl=False)

    s3.Object('my-bucket', 'hello.txt').put(Body=open('/tmp/hello.txt', 'rb'))

(hello.txt просто содержит слово)

Допустим, этот скрипт написан и запускается с узла (который является узлом конечной точки radosgw) в моем кластере 1. Он хорошо работает, когда «endpoint_url» - это узел, с которого я запускаю скрипт, но он не работает когда я пытаюсь достичь другой моей конечной точки (radosgw, расположенной в другом узле в моем кластере "2").

Я получил эту ошибку:

botocore.exceptions.ReadTimeoutError: Read timeout on endpoint URL

Странно то, что я могу создать корзину без ошибок:

s3_src.create_bucket(Bucket=bucket_name)
s3_dest.create_bucket(Bucket=bucket_name)

Я даже могу перечислить ведра моих двух конечных точек.

У вас есть идея, почему я могу делать почти все, но не помещать ни одного объекта во вторую конечную точку?

Надеюсь, в этом есть смысл.

1 Ответ

0 голосов
/ 26 апреля 2019

В конечном итоге я обнаружил, что проблема связана не с boto, а с моим пулом ceph, который представляет мои данные.

Пул сегментов был исправен, поэтому я мог создавать свои сегменты, тогда как пул данных был нездоровым, поэтому возникла проблема, когда я пытался поместить объект в корзину.

...