python 虚拟环境拒绝 AWS S3 访问
AWS S3 Access Denied on python virtual environment
我想将 csv 文件写入 s3 存储桶
import pandas as pd
df = pd.DataFrame({'test':[1,2,3,4]})
# write to s3
df.to_csv('s3://<my-bucket>/test.csv', index=False)
# read from s3
df_read = pd.read_csv('s3://<my-bucket>/test.csv')
我已经安装了 s3fs 并配置了 awscli
此代码在 awscli 之前安装的虚拟环境中运行良好
但是新的虚拟环境有只读权限
任何人都可以帮助我了解如何解决这个问题吗?
AWS CLI 凭证和配置设置优先于实例配置文件凭证,因此您需要配置 cli 以承担具有写入权限的 IAM 角色或授予当前 AWS cli 用户凭证写入权限。
你首先必须设置aws cli
然后然后做aws config
- 之后你可以轻松使用它在你的代码中。
基本上,如果这是一个独立的脚本,您 运行 可以通过以下几种方式加入其中:
- 将凭据作为环境变量传递,例如
如果您正在使用 windows
set AWS_ACCESS_KEY_ID="your_key_id"
set AWS_SECRET_ACCESS_KEY="your_secret_key"
set AWS_REGION=<REGION_NAME>
Mac OSX/Linux
$ export AWS_ACCESS_KEY_ID="your_key_id"
$ export AWS_SECRET_ACCESS_KEY="your_secret_key"
$ export AWS_REGION=<REGION_NAME>
在 运行 运行脚本时传递配置文件名称
AWS_PROFILE=foo script.py
通过指定配置文件创建客户端
dev = boto3.session.Session(profile_name=<MY_PROFILE_NAME>)
我想将 csv 文件写入 s3 存储桶
import pandas as pd
df = pd.DataFrame({'test':[1,2,3,4]})
# write to s3
df.to_csv('s3://<my-bucket>/test.csv', index=False)
# read from s3
df_read = pd.read_csv('s3://<my-bucket>/test.csv')
我已经安装了 s3fs 并配置了 awscli
此代码在 awscli 之前安装的虚拟环境中运行良好 但是新的虚拟环境有只读权限
任何人都可以帮助我了解如何解决这个问题吗?
AWS CLI 凭证和配置设置优先于实例配置文件凭证,因此您需要配置 cli 以承担具有写入权限的 IAM 角色或授予当前 AWS cli 用户凭证写入权限。
你首先必须设置aws cli
然后然后做aws config
- 之后你可以轻松使用它在你的代码中。
基本上,如果这是一个独立的脚本,您 运行 可以通过以下几种方式加入其中:
- 将凭据作为环境变量传递,例如
如果您正在使用 windows
set AWS_ACCESS_KEY_ID="your_key_id"
set AWS_SECRET_ACCESS_KEY="your_secret_key"
set AWS_REGION=<REGION_NAME>
Mac OSX/Linux
$ export AWS_ACCESS_KEY_ID="your_key_id"
$ export AWS_SECRET_ACCESS_KEY="your_secret_key"
$ export AWS_REGION=<REGION_NAME>
在 运行 运行脚本时传递配置文件名称
AWS_PROFILE=foo script.py
通过指定配置文件创建客户端
dev = boto3.session.Session(profile_name=<MY_PROFILE_NAME>)