Предварительно подписанный медленный URL-адрес aws s3 - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь защитить ресурсы s3, и я создал временные учетные данные, используя службу sts в том же регионе, где существует сегмент. Я использую эти учетные данные для создания предварительно подписанного URL-адреса, срок действия которого истекает через час. Эти ссылки являются изображениями и будут отображаться в мобильном приложении. Но после реализации мы испытываем медлительность ответа от s3. Кто-нибудь испытывал такое же поведение?

Вот так я генерирую предварительно подписанный URL

try {
    AmazonS3 s3Client = new AmazonS3Client(getTemporaryAwsCredentials());

    // Generate the pre signed URL.
    LOGGER.info("Generating pre-signed URL for " + unsignedUrl);
    GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, fileName).withMethod(HttpMethod.GET);

    URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);

    LOGGER.info("Pre-Signed URL: " + url.toString());
    return url.toString();

} catch (Exception e) {
    LOGGER.error("Error while generating pre signed url ", e);
}
private AWSCredentials getTemporaryAwsCredentials() {

    AWSSecurityTokenServiceClient sts_client = new AWSSecurityTokenServiceClient(getCredentials());
    sts_client.setEndpoint("sts.us-west-2.amazonaws.com");

    GetSessionTokenRequest session_token_request = new GetSessionTokenRequest();
    session_token_request.setDurationSeconds(43200);

    GetSessionTokenResult session_token_result = sts_client.getSessionToken(session_token_request);

    Credentials session_creds = session_token_result.getCredentials();

    BasicSessionCredentials sessionCredentials = new BasicSessionCredentials(
        session_creds.getAccessKeyId(),
        session_creds.getSecretAccessKey(),
        session_creds.getSessionToken());

    return sessionCredentials;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...