AWS Cloud9中用boto3上传本地文件到S3遇FileNotFoundError
问题根源
AWS Cloud9是基于Linux的云端开发环境,你代码里写的Windows本地路径C:/Users/Dylan/OneDrive/Desktop/Hey.txt在Cloud9实例里完全不存在——云端环境没法直接访问你本地Windows电脑的桌面文件,这就是报错的核心原因。
解决步骤
分两种场景处理:
场景1:通过Cloud9上传本地文件到S3
- 先把你本地Windows桌面的
Hey.txt上传到Cloud9环境:打开Cloud9左侧文件管理器,点击右上角的「Upload Files」按钮,选中本地的Hey.txt完成上传。 - 修改代码里的文件路径,换成Cloud9内的路径。比如文件上传到Cloud9根目录的话,路径可以写
./Hey.txt或者完整路径/home/ec2-user/environment/Hey.txt。 - 重新运行代码,示例代码如下:
import boto3 s3 = boto3.client('s3') try: # 这里替换成Cloud9内的文件路径 s3.upload_file('./Hey.txt', 'dylanreed123132', 'Hey.txt') print("文件上传成功") except FileNotFoundError: print("指定文件不存在,请检查路径是否正确") except Exception as e: print(f"上传失败:{str(e)}")
场景2:直接在本地Windows上传到S3
- 如果你不想经过Cloud9,直接在本地操作:在Windows电脑上安装Python和boto3,通过
aws configure命令配置好你的AWS凭证(Access Key和Secret Key)。 - 用你原来的代码在本地运行,此时Windows路径
C:/Users/Dylan/OneDrive/Desktop/Hey.txt就能被正常识别,直接上传到S3桶。
内容的提问来源于stack exchange,提问作者Dreed66
相关产品推荐
相关产品推荐

