Python 无法从s3下载文件,因为密钥名后附加了垃圾字符串

Python 无法从s3下载文件,因为密钥名后附加了垃圾字符串,python,amazon-s3,boto3,Python,Amazon S3,Boto3,我正在尝试从S3 bucket中的特定文件夹下载所有文件和文件夹,并将其下载到特定的本地文件夹中。当我尝试下载时,会出现以下异常: 没有这样的文件或目录 我尝试了不同的代码片段来执行相同的任务,但无法解决问题。以下是代码片段: def download(self): s3_bucket = self.resource.Bucket(self.bucket) for s3_object in s3_bucket.objects.filter(Prefix=self.folder):

我正在尝试从S3 bucket中的特定文件夹下载所有文件和文件夹,并将其下载到特定的本地文件夹中。当我尝试下载时,会出现以下异常:

没有这样的文件或目录

我尝试了不同的代码片段来执行相同的任务,但无法解决问题。以下是代码片段:

def download(self):
    s3_bucket = self.resource.Bucket(self.bucket)
    for s3_object in s3_bucket.objects.filter(Prefix=self.folder):
        local_path = os.path.join(self.local_path, s3_object.key)
        if not os.path.exists(os.path.dirname(local_path)):
            os.makedirs(local_path)

        key = str(s3_object.key)
        if not key.endswith('/'):
            logging.info("Downloading {}".format(key))
            s3_bucket.download_file(s3_object.key, key)

    return json.dumps({"msg": "data is downloaded"})
但它给了我一个错误:

IOError:[Errno 2]没有这样的文件或目录: “temp/abc/metrics_data.csv.CDBdfD3f”


文件的实际键是temp/abc/metrics_data.csv,但我不知道从何处附加“.CDBdfD3f”。请指导。

我知道有点晚了,但我也遇到了同样的问题,问题是您将文件写入的目录不存在。我有一个区分大小写的问题,一旦我找到了正确的路径,一切都按预期进行