Ошибка получения информации об адресе, socket.gaierror: [Errno -2] - PullRequest
0 голосов
/ 14 октября 2018

Я хочу создать корзину на S3

import sys
import requests
import requests_aws4auth as aws4auth
import xml.etree.ElementTree as ET
import xml.dom.minidom as minidom

access_id = '********'
access_key = '********'
region = 'Frankfurt'

if region and region != 'us-east-1': 
    endpoint = 's3-{}.amazonaws.com'.format(region)
else: 
    endpoint = 's3.amazonaws.com'

auth = aws4auth.AWS4Auth(access_id, access_key, region, 's3')
ns = 'http://s3.amazonaws.com/doc/2006-03-01/'

def xml_pprint(xml_string):
    print(minidom.parseString(xml_string).toprettyxml())

def create_bucket(bucket):
    XML = ET.Element('CreateBucketConfiguration')
    XML.attrib['xmlns'] = ns
    location = ET.SubElement(XML, 'LocationConstraint')
    location.text = auth.region
    data = ET.tostring(XML, encoding='utf-8')
    url = 'http://{}.{}'.format(bucket, endpoint)
    r = requests.put(url, data=data, auth=auth)

    if r.ok:
        print('Created bucket {} OK'.format(bucket))
    else:
        xml_pprint(r.text)

if __name__ == '__main__':
    cmd, *args = sys.argv[1:]
    globals()[cmd](*args)

Я получил это

python s3_client.py create_bucket mybucket.example.com
Traceback (most recent call last):
  File "/home/milenko/miniconda3/lib/python3.7/site-packages/urllib3/connection.py", line 171, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
  File "/home/milenko/miniconda3/lib/python3.7/site-packages/urllib3/util/connection.py", line 56, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/home/milenko/miniconda3/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

Я в замешательстве.Что-то не так в моей конечной точке.Какое имя или услуга не известны?Это указывает на мой access_id?

1 Ответ

0 голосов
/ 15 октября 2018

Регион должен быть указан по-другому

region = 'eu-west-1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...