web-dev-qa-db-ja.com

AWS BOTO3 S3 python-HeadObjectオペレーションを呼び出すときにエラーが発生しました(404):Not Found

S3バケット内のディレクトリをダウンロードしようとしています。転送を使用してS3バケットからディレクトリをダウンロードしようとしていますが、「HeadObject操作を呼び出すときにエラーが発生しました(404):Not Found」というエラーが表示されます。助けてください。

S3 structure:
  **Bucket
     Folder1
        File1**

注:Folder1をダウンロードしようとしています

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

最近同じ問題がありました。パスとフォルダー名のつづりが間違っている可能性があります。私の場合、たとえば、「/」をいじっていました。

修正するには、関数の引数として使用している変数に、S3の場合と同じディレクトリ、フォルダー、およびファイルの正しい名前が含まれていることを確認してください。また、正しい変数の正しい場所に「/」を入れてください。たとえば、私の場合、次のことがわかりました。

  • バケット名:bucket_name(末尾に「/」がなく、「s3://」がない)
  • ディレクトリ名:folder1/folder2/file_name(先頭に「/」を付けない)

このエラーを簡単に回避できるようになることを願っています。

13

私が遭遇した別の考えられる原因は、ダウンロードしようとしているファイルに0バイトが含まれていることです。これは、AWS cliが異議なしにダウンロードするため、かなり混乱しています。

0
Avidan Efody