S3 не возвращает ключи подпапок. Он просто возвращает все файлы в подпапке - PullRequest
1 голос
/ 20 марта 2020

Я использую Java AmazonS3Client для подключения к корзине в S3. Моя структура ведра, как показано ниже.

Bucket --> folder_1 --> sub_folder_1 --> file1,file2,file3

Когда я запрашивал listObjects из клиента s3, я получаю все папки и файлы как объекты, чего я и ожидаю.

Когда я развернул свой код в EC2, тот же код возвращает только файлы в виде объектов. Он не возвращает объекты папки.

Единственное отличие, которое я делаю, заключается в том, что локально я использую ACCESS_KEY & SECRET_KEY, а в EC2 я создал роль IAM. Ниже приведены действия, разрешенные как часть моей роли IAM.

"Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:AbortMultipartUpload",
                "s3:ListMultipartUploadParts",
                "s3:ListBucketMultipartUploads"
            ],
"Resource": [
                "arn:aws:s3:::my-bucket-name/*",
                "arn:aws:s3:::my-bucket-name"
            ]

В локальном listObjects возвращает указанные ниже ключи объектов.

folder_1
folder_1/sub_folder_1
folder_1/sub_folder_1/file1
folder_1/sub_folder_1/file2
folder_1/sub_folder_1/file3

Но в EC2 я получаю только ниже клавиш.

folder_1/sub_folder_1/file1
folder_1/sub_folder_1/file2
folder_1/sub_folder_1/file3

Я хочу получить те же ключи объектов, что и локальные, в EC2. В чем может быть проблема.

1 Ответ

1 голос
/ 23 марта 2020

Симптомы указывают на то, что вы на самом деле перечисляете объекты в двух разных сегментах S3.

Вероятно, один из этих блоков был заполнен с консоли AWS S3, и вы использовали консоль S3 для явного создания папок для хранения. ваши файлы.

Другое хранилище заполнялось программным способом, просто загружая объекты с ключами, и папок не было (поскольку папки в S3 не требуются, а в типичном случае фактически не существуют). Вы можете просто загрузить folder_1/sub_folder_1/file1, и этот процесс не требует и не будет создавать структуру папок folder_1/sub_folder_1/.

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