【问题标题】:S3 File Download Returns ErrorS3 文件下载返回错误
【发布时间】:2018-07-27 02:16:29
【问题描述】:

我编写了以下 Python 脚本来将 S3 存储桶中的 ALL 文件下载到我的当前目录中:

import boto3
import botocore
import os

from boto3.session import Session

ACCESS_KEY='AWS_IAM_AccessKey'
SECRET_KEY='AWS_IAM_SecretKey'

session = Session(aws_access_key_id=ACCESS_KEY, 
aws_secret_access_key=SECRET_KEY)

s3 = session.resource('s3')
myBucket = s3.Bucket('S3_bucketName')

for object in myBucket.objects.all():
    myBucket.download_file(object.key, os.path.join(os.curdir, object.key))

我收到以下错误:

FileNotFoundError: [Errno 2] No such file or directory: './raw_cdr/s3_fileName'

我该如何解决这个问题?尽管 s3_fileName 实际上是 raw_cdr 目录中的一个实际文件,但它表示不存在这样的文件/目录(并且它只找到几个文件中的一个)。

此外,随着 S3 存储桶大小的增长,我想进一步增强此脚本,使其仅下拉过去 24 小时内生成的 S3 文件(使用 Last Modified 列值),而不是所有这些文件。非常感谢任何和所有建议。

【问题讨论】:

    标签: python amazon-s3 boto3


    【解决方案1】:

    您收到此错误是因为 object.key 包含 /raw_cdr/s3_fileName。由于/raw_cdr/ 不存在,因此无法创建文件。尝试这样做:

    for object in myBucket.objects.all():
        myBucket.download_file(object.key, os.path.join(os.curdir, os.path.basename(object.key)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2011-03-21
      • 1970-01-01
      相关资源
      最近更新 更多