Это, по общему признанию, несколько удивительно, но в S3 нет такого понятия, как «ведро».Все ведра на высшем уровне.Структуры внутри сегментов, которые вы видите в консоли администратора S3 или других пользовательских интерфейсах, называются «папками», но даже они на самом деле не существуют!Например, вы не можете напрямую создавать или уничтожать папки или устанавливать на них какие-либо атрибуты.Папки - это просто соглашение на уровне представления для просмотра базового плоского набора объектов в вашем ведре.Тем не менее, довольно легко разбить ваши объекты на (полностью несуществующие) папки.Просто дайте им иерархические имена, с каждым уровнем, разделенным "/".
val putObjectRequest = new PutObjectRequest(bucketName, topFolderName +"/" + subFolderName+ "/" +key, inputStream, metadata)