it-swarm.com.ru

AWS BOTO3 S3 python - при вызове операции HeadObject произошла ошибка (404): не найдено

Я пытаюсь скачать каталог внутри S3 Bucket. Я пытаюсь использовать передачу для загрузки каталога из корзины S3, но получаю сообщение об ошибке «Произошла ошибка (404) при вызове операции HeadObject: Not Found». Пожалуйста помоги.

S3 structure:
  **Bucket
     Folder1
        File1**

Примечание. Попытка загрузить папку 1

transfer.download_file(self.bucket_name, self.dir_name, self.file_dir + self.dir_name)
9
Jack

У меня недавно была такая же проблема. Возможно, вы неправильно написали путь и имя папки. В моем случае, например, я испортил «/». 

Чтобы исправить это, убедитесь, что переменные, которые вы используете в качестве аргументов для функции, содержат правильные имена каталогов, папок и файлов, как в S3. Кроме того, убедитесь, что вы поставили '/' в правильных местах в правильных переменных. Например, в моем случае я обнаружил, что: 

  • имя сегмента: имя сегмента (без символа '/' в конце и без 's3: //')
  • имя каталога: папка1/папка2/имя_файла (без '/' в начале)

Я надеюсь, что это поможет вам и другим легко обойти эту ошибку.

13
Marcus Vinicius Melo

Другая возможная причина, с которой я столкнулся, заключается в том, что файл, который вы пытаетесь загрузить, содержит 0 байтов. Это довольно запутанно, поскольку AWS cli загрузит его без каких-либо возражений.

0
Avidan Efody