AWS потребовал, чтобы продукт, над которым я работаю, определял запросы, которые он отправляет к ресурсам S3 наших пользователей от их имени, чтобы они могли оценить их влияние.
Для этого мы должны установить заголовок User-Agent для каждого запроса на загрузку, выполняемого для корзины S3 из приложения EMR. Мне интересно, как этого можно добиться?
В документе Hadoop упоминается свойство fs.s3a.user.agent.prefix
(core-default.xml). Однако протокол s3a
кажется устаревшим (Работа с хранилищем и файловыми системами), поэтому я не уверен, что это свойство будет работать.
Чтобы дать немного больше контекста, что мне нужно сделать, с помощью AWS Java SDK можно установить префикс заголовка User-Agent, например:
AWSCredentials credentials;
ClientConfiguration conf = new ClientConfiguration()
.withUserAgentPrefix("APN/1.0 PARTNER/1.0 PRODUCT/1.0");
AmazonS3Client client = new AmazonS3Client(credentials, conf);
Затем HTTP-заголовок User-Agent каждого запроса будет иметь значение, подобное: APN/1.0 PARTNER/1.0 PRODUCT/1.0, aws-sdk-java/1.11.234 Linux/4.15.0-58-generic Java_HotSpot(TM)_64-Bit_Server_VM/25.201-b09 java/1.8.0_201
. Мне нужно добиться чего-то подобного при загрузке файлов из приложения EMR.