【问题标题】:Unable to download files from s3 because a junk string is appended to key name无法从 s3 下载文件,因为垃圾字符串附加到密钥名称
【发布时间】:2020-07-22 15:36:52
【问题描述】:

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

没有这样的文件或目录

我尝试了不同的 sn-ps 代码来执行相同的任务,但无法解决问题。这是代码sn-p:

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”。请指导。

【问题讨论】:

    标签: python amazon-s3 boto3


    【解决方案1】:

    我知道它有点晚了,但我遇到了同样的问题,问题是您正在写入文件的目录不存在。我遇到了区分大小写的问题,一旦我输入了正确的路径,一切都会按预期工作。

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 2018-06-22
      • 1970-01-01
      • 2019-09-25
      • 2016-10-26
      • 1970-01-01
      • 2018-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多