Предварительно подписанные URL-адреса предназначены для защиты от несанкционированного доступа.Любая модификация, которая изменяет элементы URL, делает подпись недействительной.Это разработано и не связано с какими-либо ограничениями в Java SDK.
Конечно, вы можете добавить пользовательские значения перед подписью URL.В документации к журналу доступа S3 рекомендуется, чтобы они начинались с x-
, и алгоритм подписи V4 определенно его поддерживает, но неясно, как это сделать с помощью Java SDK.С JavaScript SDK есть простой хак , включающий перехватчики событий.
В качестве альтернативы, поместите CloudFront перед корзиной.Предварительно подписанные URL-адреса CloudFront с использованием пользовательских политик поддерживают подстановочные знаки в поле Resource
, которое является полем, в котором указан полный URL-адрес в пользовательской политике.