Это может быть невозможным, в зависимости от того, что вы ожидаете.
Во-первых, стоит отметить, что папки на самом деле не существуют в Amazon S3 .
Например, вы можете запустить эту команду, чтобы скопировать файл на S3:
aws s3 cp foo.txt s3://my-bucket/data/2020/03/23/
Это поместит файл в путь data/2020/03/23/
, и эти четыре каталога будут «появляться» в консоли , но они на самом деле не существуют. Скорее, ключ (имя файла) объекта содержит полный путь .
Если вы затем удалите объект:
aws s3 rm s3://my-bucket/data/2020/03/23/foo.txt
, тогда четыре каталога будут "исчезнуть" (потому что они все равно не существовали).
Можно обмануть , нажав "Создать папку" в консоли управления S3. Это создаст объект нулевой длины с именем папки (фактически, с именем полного пути). Это приводит к тому, что каталог появляется в списке сегментов, но это только потому, что в этом пути существует объект.
В S3 каталоги называются CommonPrefixes
, и можно использовать команды, которые ссылаются на префикс, вместо того, чтобы ссылаться на каталог.
Итак, вы можете перечислить сегмент, указав путь в качестве префикса. Затем будет возвращен список любых объектов, которые находятся в этом пути.
Однако лучший ответ: Просто притворитесь, что он существует, и все будет работать нормально.