gpt4 book ai didi

python - 获取 botocore.exceptions.NoCredentialsError : Unable to locate credentials especially when I using CronTab

转载 作者:行者123 更新时间:2023-12-01 01:57:28 25 4
gpt4 key购买 nike

据我了解,对于此错误,我们有几个答案。但是,我的问题有所不同,因此提出了这个问题。

我正在将音频文件从树莓派推送到 AWS-S3 实例。当我手动运行脚本时,上传工作没有任何问题。然而,当通过 crontab 实例运行相同的脚本时,它会抛出上述错误。

我的python代码如下:

import boto3
import argparse
import os
ap=argparse.ArgumentParser()
ap.add_argument("-f","--filetoupload", required=True, help="file to upload")
args=vars(ap.parse_args())
file = os.path.basename(args['filetoupload'])
client=boto3.client('s3', region_name='ap-south-1')
print("[INFO:] Uploading file to cloud")
client.upload_file(args['filetoupload'],'MyS3Bucket',file)
print("[INFO:] File upload completed successfully")

我在 bash 脚本中调用这个 python 脚本。

python /home/pi/s3upload.py --filetoupload /home/pi/upload/${FILENAME}.mp3

mp3 文件被创建,如上所述,当我手动运行它时,它运行没有任何问题。

我检查了 .aws 文件夹中的 configcredentials 文件。正如 SO 中的其他响应所示,它们从默认值开始并设置了正确的凭据。

完整的错误信息如下:

[INFO:] Uploading file to cloud
Traceback (most recent call last):
File "/home/pi/s3upload.py", line 10, in <module>
client.upload_file(args['filetoupload'],'MyS3Bucket',file)
File "/usr/local/lib/python2.7/dist-packages/boto3/s3/inject.py", line 110, in upload_file
extra_args=ExtraArgs, callback=Callback)
File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 279, in upload_file
future.result()
File "/usr/local/lib/python2.7/dist-packages/s3transfer/futures.py", line 73, in result
return self._coordinator.result()
File "/usr/local/lib/python2.7/dist-packages/s3transfer/futures.py", line 233, in result
raise self._exception
botocore.exceptions.NoCredentialsError: Unable to locate credentials
script finished

最佳答案

默认情况下,当 crontab 运行脚本时,它会将 $HOME 变量设置为 /

AWS 在解析为 $HOME/.aws 的位置查找其凭证。

因此,您需要将 .aws 目录移动到根目录(这可能不是一个好主意),或者重新定义 $HOME 以指向包含 的文件夹。 aws 目录。

如果您从 shell 脚本运行 python 脚本,最简单的方法是添加:

export /HOME=/home/pi/

到 shell 脚本的开头。

关于python - 获取 botocore.exceptions.NoCredentialsError : Unable to locate credentials especially when I using CronTab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50004263/

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