2016-08-11 2 views
0

Мне нужен быстрый способ определить, правильна ли авторизация (ключ доступа и секретный ключ) для AWS S3.Используя SDK AWS S3 Java, каков самый быстрый способ определить, является ли авторизация (ключ доступа и секретный ключ) правильной?

Я нашел медленное решение: вызов AmazonS3Client.getS3AccountOwner приведет к подписанию запроса и отправке его в AWS и сбою, если ваш ключ доступа/секретный ключ неверны. К сожалению, это занимает 200-300 мс.

Я нашел способ сделать это в лазури в 60 мс, используя код ниже:

  final CloudBlobContainer container = 
        m_client.getContainerReference(UUID.randomUUID().toString()); 
      container.exists(); 

Эквивалент выше для S3 не работает для моей цели (или, по крайней мере, I» я не смог понять, как использовать его для моей цели). У кого-нибудь есть идеи относительно того, как я могу сократить время, чтобы определить, является ли авторизация правильной с 200-300 мс с подходом, который я нашел?

ответ

1

Такая проверка не дает никакой ценности в AWS. Ключ доступа и секретный ключ могут совпадать, но не могут быть никаких политик IAM или политики могут быть ограничены для пользователя IAM. Так что только потому, что ключи действительны, это не значит, что вы сможете перечислить ведра или загрузить файл с этими учетными данными.

Вы должны проверить результат операции S3, чтобы определить, недостаточно ли разрешений для операции и действовать соответственно в это время.

+0

Я понимаю, что вы говорите, но этот код идет в том месте, где мне просто нужно проверить, что ключ доступа и секретный ключ действительны. Мне не нужно проверять доступ к каким-либо ведрам или чему-либо еще в этот момент. Таким образом, мой вопрос по-прежнему стоит :) Как я могу быстро определить, является ли ключ доступа/секретная комбинация действительной? – jasons2645

+0

Ваш вопрос все еще может стоять, но у него проблемы с этим, потому что нет никакого очевидного момента для такого теста. Учетные данные могут быть правильными и действительными, но все еще полностью непригодными для использования. Ошибка при сбое реального запроса даст вам гораздо лучшее представление о характере проблемы, если это произойдет. –