AWS BOTO3 S3 python - An error occurred (404) when calling the HeadObject operation: Not Found

Jack picture Jack · Oct 8, 2017 · Viewed 41.3k times · Source

I am trying download a directory inside s3 bucket. I am trying to use transfer to download a directory from S3 bucket but I am getting an error as "An error occurred (404) when calling the HeadObject operation: Not Found". Please help.

S3 structure:
  **Bucket
     Folder1
        File1**

Note: Trying to download Folder1

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

Answer

Marcus Vinicius Melo picture Marcus Vinicius Melo · Dec 20, 2017

I had the same issue recently. You are probably misspelling the path and folder name. In my case, for example, I was messing up with the '/'.

To fix it, make sure the variables you are using as arguments for the function contains the correct names of the directories, folders and files as it is in S3. Also, make sure you put the '/' in the correct places in the correct variables. For instance, in my case I found that:

  • bucket name: bucket_name (with no '/' in the end, and no 's3://')
  • directory name: folder1/folder2/file_name (with no '/' in the beginning)

I hope it helps you and others to get around this error easily.