python - 无法从 s3 下载文件,因为垃圾字符串附加到密钥名称
问题描述
我正在尝试从 S3 存储桶中的特定文件夹下载所有文件和文件夹并下载到特定的本地文件夹中。当我尝试下载时,出现异常:
没有这样的文件或目录
我尝试了不同的代码片段来执行相同的任务,但无法解决问题。这是代码片段:
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”。请指导。
解决方案
我知道它有点晚了,但我遇到了同样的问题,问题是您正在写入文件的目录不存在。我遇到了区分大小写的问题,一旦我输入了正确的路径,一切都按预期工作。
推荐阅读
- assembly - 使用 8086 汇编语言与 Arduino 进行串行通信
- awk - 查找与表达式匹配的行,复制整行,插入新行并替换表达式
- c# - 实体框架错误:在使用复合键生成模型期间检测到一个或多个验证错误
- java - Lambda Java - 迭代一个 Json 对象。看起来里面是重复的
- python - 如何从 Pandas 数据框中获取具有最大日期的行?
- c - 不懂 C 中的内存冲浪
- python - scipy stats binom cdf 返回 nan
- css - 在 css 中将一个装满图像的容器居中
- neural-network - LSTM RNN 的有趣结果:训练和验证数据的滞后结果
- node.js - 如何使用 Node.Js twit (Github) 进行直接消息 Twitter API