gpt4 book ai didi

python-3.x - 错误号 2 : No such file or directory: SSLError while calling s3. get_object()

转载 作者:行者123 更新时间:2023-12-02 18:49:53 25 4
gpt4 key购买 nike

我正在尝试通过 lambda 函数从 S3 存储桶加载 csv 文件。当我这样做时,我收到以下错误。

Errno 2: No such file or directory: SSLError
Traceback (most recent call last):
File "/var/task/lambda_function_csv.py", line 12, in lambda_handler
obj = raw_s3.get_object(Bucket ='h2h-demo', Key ='H2H_results_100.csv')

我在我的函数中使用下面给出的代码来获取文件。当在函数配置中使用内联编辑器创建一个小函数来打印 csv 文件的行时,我正在阅读它的工作原理。

当我在本地计算机上运行它时,这也有效。

raw_s3 = boto3.client('s3')
obj = raw_s3.get_object(Bucket ='h2h-demo', Key ='H2H_results_100.csv')

但是,当我将其放入最终代码中(该代码与其他一些依赖项一起压缩)并使用行数据进行其他处理时,我收到上述错误。我不明白为什么会发生这种情况。

最佳答案

您只能将对象复制到 lambda 上的 tmp 文件夹中,通过将 tmp 文件夹添加到目标来进行以下更改:
obj = raw_s3.get_object(Bucket ='h2h-demo', Key ='/tmp/H2H_results_100.csv')

我建议将来抛出异常,它们在调试中非常有用:

 import boto3
import botocore

BUCKET_NAME = 'xyz' # replace with your bucket name
KEY = 'xyz' # replace with your object key

s3 = boto3.resource('s3')

try:
s3.Bucket(BUCKET_NAME).download_file(KEY, '/tmp/xyz')
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
else:
raise

如果您尝试将其保存在 lambda 而非 tmp 文件夹中,您将收到以下错误:

"errorMessage": "[Errno 30] Read-only file system: 'xyz'",

引用: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-example-download-file.html

关于python-3.x - 错误号 2 : No such file or directory: SSLError while calling s3. get_object(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52550655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com