在使用 Apache Pyarrow 時嘗試使用特定的 AWS 組態檔。使用 pyarrow fs [https://arrow.apache.org/docs/python/generated/pyarrow.fs.S3FileSystem.html] 實體化 S3FileSystem 時,檔案沒有顯示傳遞組態檔名稱的選項
試圖通過使用 boto3 創建會話并使用它來解決此問題:
# include mfa profile
session = boto3.session.Session(profile_name="custom_profile")
# create filesystem with session
bucket = fs.S3FileSystem(session_name=session)
bucket.get_file_info(fs.FileSelector('bucket_name', recursive=True))
但這也失敗了:
OSError: When listing objects under key '' in bucket 'bucket_name': AWS Error [code 15]: Access Denied
是否可以將 fs 與自定義 aws 組態檔一起使用?
~/.aws/credentials :
[default]
aws_access_key_id = <access_key>
aws_secret_access_key = <secret_key>
[custom_profile]
aws_access_key_id = <access_key>
aws_secret_access_key = <secret_key>
aws_session_token = <token>
附加背景關系:用戶的所有操作都需要 MFA。憑證檔案中的自定義 AWS 組態檔存盤在 CLI 上基于 MFA 的身份驗證生成的令牌,需要在腳本中使用該組態檔
uj5u.com熱心網友回復:
可以指定令牌,但還必須指定訪問密鑰和秘密密鑰:
s3 = fs.S3FileSystem(access_key="",
secret_key="",
session_token="")
還必須實作某種方法來決議 ~/.aws/credentials 檔案以訪問這些值或每次手動進行
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/497643.html
上一篇:AWSS3下載定價
