S3文件下载返回错误



我编写了以下Python脚本,将S3 Bucket中的所有文件下载到我当前的目录中:

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列值(,而不是所有文件。我们非常感谢所有的建议。

由于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)))

最新更新