#curl #google-cloud-platform #google-cloud-storage #debian-stretch #aws-sdk-cpp
#curl #google-облачная платформа #google-облачное хранилище #debian-stretch #aws-sdk-cpp
Вопрос:
У меня установлен клиент Debian 9 с aws cpp sdk. Я использую этот SDK для облачного хранилища Google. SDK использует curl для отправки запросов в облако. У меня есть тестовая программа, которая выполняет множество операций ввода в облако. Я заметил, что сначала выполняется пара PUTs, а затем я начинаю видеть ошибки тайм-аута curl для PUTs. Ниже приведены журналы из AWS sdk, которые указывают, что время ожидания запроса curl истекло:
[DEBUG] 2020-09-08 20:24:44.466 AWSAuthV4Signer [140206136674048] Signed Headers value:content-length;content-type;host;x-amz-content-sha256;x-amz-date
[DEBUG] 2020-09-08 20:24:44.466 AWSAuthV4Signer [140206136674048] Canonical Request String: PUT
<Objname>
content-length:2101248
content-type:binary/octet-stream
host:storage.googleapis.com
x-amz-content-sha256:UNSIGNED-PAYLOAD
x-amz-date:20200908T202444Z
content-length;content-type;host;x-amz-content-sha256;x-amz-date
UNSIGNED-PAYLOAD
[DEBUG] 2020-09-08 20:24:44.466 AWSAuthV4Signer [140206136674048] Final String to sign: AWS4-HMAC-SHA256
20200908T202444Z
20200908/us-east-1/s3/aws4_request
79a64334206d67cfc19f147fdf51caa409d39f5054ab48a7ca655d5bc3a30438
..
[DEBUG] 2020-09-08 20:24:44.466 AWSClient [140206136674048] Request Successfully signed
[DEBUG] 2020-09-08 20:24:44.466 CurlHandleContainer [140206136674048] Attempting to acquire curl connection.
[INFO] 2020-09-08 20:24:44.466 CurlHandleContainer [140206136674048] Connection has been released. Continuing.
[DEBUG] 2020-09-08 20:24:44.466 CurlHandleContainer [140206136674048] Returning connection handle 0x7f839801e740
[DEBUG] 2020-09-08 20:24:44.466 CurlHttpClient [140206136674048] Obtained connection handle 0x7f839801e740
[ERROR] 2020-09-08 20:26:44.739 CurlHttpClient [140206136674048] Curl returned error code 28 - Timeout was reached
[DEBUG] 2020-09-08 20:26:44.739 CurlHandleContainer [140206136674048] Releasing curl handle 0x7f839801e740
[DEBUG] 2020-09-08 20:26:44.739 CurlHandleContainer [140206136674048] Notified waiting threads.
[DEBUG] 2020-09-08 20:26:44.739 AWSClient [140206136674048] Request returned error. Attempting to generate appropriate error codes from response
[ERROR] 2020-09-08 20:26:44.739 AWSClient [140206136674048] HTTP response code: -1
Exception name:
Error message: Unable to connect to endpoint
Некоторые наблюдения, которые у меня есть:
- У меня нет этой проблемы с GETs.
- Я вижу эту проблему только при использовании Debian. Когда я попробовал хост с Ubuntu 18.04, он работал нормально.
- Я не вижу этой проблемы, когда использую HTTP и порт 80 вместо HTTPS и порта 443.
Есть идеи, что может быть причиной тайм-аутов curl?
Комментарии:
1. Привет @San похоже, что это библиотека, не являющаяся официальной на стороне Google. Я бы порекомендовал вам обратиться к команде разработчиков AWS — тем, кто отвечает за эту библиотеку, — чтобы они могли предоставить вам дополнительную информацию. Вы можете связаться с ними здесь .
2. Спасибо за ответ @gso_gabriel. Согласно этой странице cloud.google.com/storage/docs/migrating#migration-simple Google упоминает, что Aws Sdk можно использовать для перехода с s3 на Google Cloud storage. Дело в том, что я не наблюдаю этой проблемы, когда использую ту же программу для AWS. Итак, я надеялся получить помощь от Google по этому вопросу.