Не можете назначить URL-адрес в течение многих лет? - PullRequest
0 голосов
/ 06 февраля 2019

Подпись Версия 4 - максимум на неделю.В Python я сделал:

s3_client = boto3.client('s3',
                         aws_access_key_id=access_key,
                         aws_secret_access_key=secret_key,
                         config=botocore.client.Config(signature_version='s3')
                         )

    return s3_client.generate_presigned_url(
        'get_object',
        Params={
            'Bucket': bucket_name,
            'Key': key
        },
        ExpiresIn=400000000)  # this is a max: ~ten years

Но для Go я нашел только func (* Request) Presign :

req, _ := s3Client.GetObjectRequest(&s3.GetObjectInput{
    Bucket: aws.String(bucketName),
    Key:    &key,
})
tenYears := time.Now().AddDate(10, 0, 0).Sub(time.Now())
url, err := req.Presign(tenYears)

HTTP-ответ для такого URL: AuthorizationQueryParametersError: X-Amz-Expires must be less than a week (in seconds); that is, the given X-Amz-Expires must be less than 604800 seconds.

Нет способа предварительно назначить URL в Go с помощью AWS SDK в течение многих лет?

1 Ответ

0 голосов
/ 06 февраля 2019

Если вы хотите предварительно подписать URL-адрес более чем на неделю, то ваш вариант использования для предварительно подписанных URL-адресов недействителен. Согласно спецификации это действительно всего одна неделя.

Предварительно подписанные URL-адреса часто используются для передачи контента из S3 только аутентифицированным пользователям.

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