У меня есть сценарий, который загружает файлы из каталога в s3 с помощью boto3 AWS SDK. Я использую его в течение нескольких недель без каких-либо проблем, а сегодня он загрузит случайное количество файлов (от 1 до 3 из 5) и выдаст следующую ошибку:
File "/usr/lib/python3.8/site-packages/urllib3/connection.py", line 159, in _new_conn
conn = connection.create_connection(
File "/usr/lib/python3.8/site-packages/urllib3/util/connection.py", line 61, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known
Мой код ниже, я добавил time.sleep (2) в качестве метода устранения неполадок, чтобы увидеть, возможно, я делал запросы слишком быстро, но это не решило проблему.
import boto3
from botocore.exceptions import NoCredentialsError
import os
import time
def upload_to_aws(local_file, bucket, s3_file):
access_key = 'ACCESS_KEY'
secret_key = 'SECRETS'
s3 = boto3.client('s3', aws_access_key_id=access_key,
aws_secret_access_key=secret_key)
try:
s3.upload_file(local_file, bucket, s3_file)
return True
except FileNotFoundError:
return False
except NoCredentialsError:
return False
def archive_to_s3(files):
for file in files:
upload_to_aws('daily_data/'+file, 'bucket', '2020/'+file)
os.remove('daily_data/'+file)
time.sleep(2)
Другая информация:
Nameservers:
1.1.1.1
1.0.0.1
Любая помощь приветствуется.
ОБНОВЛЕНИЕ:
Как предложено ниже, я покопался в конечной точке, показав 1.1.1.1 как сервер и включил ведение журнала DEBUG на моей стороне. Когда я провел первый тест для получения журналов, он работал безупречно и, как и ожидалось, загрузил все файлы.